Merge "[fidl] Fix the last usages of raw channels"
diff --git a/Android.bp b/Android.bp
index 482e5a6..b4f361f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -15,3 +15,35 @@
  */
 
 soong_namespace {}
+
+package {
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
+// Added automatically by a large-scale-change that took the approach of
+// 'apply every license found to every target'. While this makes sure we respect
+// every license restriction, it may not be entirely correct.
+//
+// e.g. GPL in an MIT project might only apply to the contrib/ directory.
+//
+// Please consider splitting the single license below into multiple licenses,
+// taking care not to lose any license_kind information, and overriding the
+// default license using the 'licenses: [...]' property on targets as needed.
+//
+// For unused files, consider creating a 'fileGroup' with "//visibility:private"
+// to attach the license to, and including a comment whether the files may be
+// used in the current project.
+// See: http://go/android-license-faq
+license {
+    name: "device_generic_goldfish-opengl_license",
+    visibility: [":__subpackages__"],
+    license_kinds: [
+        "SPDX-license-identifier-Apache-2.0",
+        "SPDX-license-identifier-BSD",
+        "SPDX-license-identifier-GPL-2.0",
+        "SPDX-license-identifier-MIT",
+    ],
+    license_text: [
+        "LICENSE",
+    ],
+}
diff --git a/android-emu/Android.bp b/android-emu/Android.bp
index c32c986..b83cab9 100644
--- a/android-emu/Android.bp
+++ b/android-emu/Android.bp
@@ -1,3 +1,13 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    //   SPDX-license-identifier-GPL-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_shared {
     name: "libandroidemu",
     vendor: true,
diff --git a/shared/GoldfishAddressSpace/Android.bp b/shared/GoldfishAddressSpace/Android.bp
index 4e8d31d..11e2450 100644
--- a/shared/GoldfishAddressSpace/Android.bp
+++ b/shared/GoldfishAddressSpace/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_static {
     name: "libGoldfishAddressSpace",
     vendor: true,
diff --git a/shared/gralloc_cb/Android.bp b/shared/gralloc_cb/Android.bp
index faea798..2e5976a 100644
--- a/shared/gralloc_cb/Android.bp
+++ b/shared/gralloc_cb/Android.bp
@@ -14,6 +14,15 @@
  * limitations under the License.
  */
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_headers {
     name: "libgralloc_cb.ranchu",
     vendor_available: true,
diff --git a/shared/qemupipe/Android.bp b/shared/qemupipe/Android.bp
index fe72943..478328c 100644
--- a/shared/qemupipe/Android.bp
+++ b/shared/qemupipe/Android.bp
@@ -14,6 +14,15 @@
  * limitations under the License.
  */
 
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_headers {
     name: "libqemupipe-types.ranchu",
     vendor_available: true,
diff --git a/system/codecs/c2/decoders/avcdec/Android.bp b/system/codecs/c2/decoders/avcdec/Android.bp
index d31f658..78ffd82 100644
--- a/system/codecs/c2/decoders/avcdec/Android.bp
+++ b/system/codecs/c2/decoders/avcdec/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_shared {
     name: "libcodec2_goldfish_avcdec",
     vendor: true,
diff --git a/system/codecs/c2/decoders/base/Android.bp b/system/codecs/c2/decoders/base/Android.bp
index c9921f5..f4ebb5d 100644
--- a/system/codecs/c2/decoders/base/Android.bp
+++ b/system/codecs/c2/decoders/base/Android.bp
@@ -1,5 +1,14 @@
 // DO NOT DEPEND ON THIS DIRECTLY
 // use libcodec2_soft-defaults instead
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_shared {
     name: "libcodec2_goldfish_common",
     defaults: ["libcodec2-impl-defaults"],
diff --git a/system/codecs/c2/decoders/vpxdec/Android.bp b/system/codecs/c2/decoders/vpxdec/Android.bp
index a3085e6..7be2d50 100644
--- a/system/codecs/c2/decoders/vpxdec/Android.bp
+++ b/system/codecs/c2/decoders/vpxdec/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-Apache-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_shared {
     name: "libcodec2_goldfish_vp9dec",
     vendor: true,
diff --git a/system/codecs/c2/service/Android.bp b/system/codecs/c2/service/Android.bp
index e85fa31..0678116 100644
--- a/system/codecs/c2/service/Android.bp
+++ b/system/codecs/c2/service/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-BSD
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_binary {
     name: "android.hardware.media.c2@1.0-service-goldfish",
 
diff --git a/system/codecs/c2/store/Android.bp b/system/codecs/c2/store/Android.bp
index ee57806..56b1895 100644
--- a/system/codecs/c2/store/Android.bp
+++ b/system/codecs/c2/store/Android.bp
@@ -1,3 +1,12 @@
+package {
+    // See: http://go/android-license-faq
+    // A large-scale-change added 'default_applicable_licenses' to import
+    // all of the 'license_kinds' from "device_generic_goldfish-opengl_license"
+    // to get the below license kinds:
+    //   SPDX-license-identifier-GPL-2.0
+    default_applicable_licenses: ["device_generic_goldfish-opengl_license"],
+}
+
 cc_library_shared {
     name: "libgoldfish_codec2_store",
     vendor: true,
@@ -24,4 +33,3 @@
       "-Wthread-safety",  // Check thread annotation at build time.
     ],
 }
-
diff --git a/system/egl/Android.mk b/system/egl/Android.mk
index f312efb..b72db0e 100644
--- a/system/egl/Android.mk
+++ b/system/egl/Android.mk
@@ -55,6 +55,9 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := egl.cfg
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE
 LOCAL_SRC_FILES := $(LOCAL_MODULE)
 
 LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/egl
diff --git a/system/egl/CMakeLists.txt b/system/egl/CMakeLists.txt
index cf649a2..f3ff096 100644
--- a/system/egl/CMakeLists.txt
+++ b/system/egl/CMakeLists.txt
@@ -1,7 +1,7 @@
 # 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/egl/Android.mk" "0d72068bb429ec9da33f7086a879a08b540b887538f21d0a9f468cead76c45df")
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/egl/Android.mk" "f5246612246423fe4f70a245deb7b5eb63364aed3e582af5ff716d406846ecd5")
 set(EGL_emulation_src eglDisplay.cpp egl.cpp ClientAPIExts.cpp)
 android_add_library(TARGET EGL_emulation SHARED LICENSE Apache-2.0 SRC eglDisplay.cpp egl.cpp ClientAPIExts.cpp)
 target_include_directories(EGL_emulation PRIVATE ${GOLDFISH_DEVICE_ROOT}/system/OpenglSystemCommon/bionic-include ${GOLDFISH_DEVICE_ROOT}/system/OpenglSystemCommon ${GOLDFISH_DEVICE_ROOT}/bionic/libc/private ${GOLDFISH_DEVICE_ROOT}/bionic/libc/platform ${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc ${GOLDFISH_DEVICE_ROOT}/shared/gralloc_cb/include ${GOLDFISH_DEVICE_ROOT}/shared/GoldfishAddressSpace/include ${GOLDFISH_DEVICE_ROOT}/system/renderControl_enc ${GOLDFISH_DEVICE_ROOT}/system/GLESv2_enc ${GOLDFISH_DEVICE_ROOT}/system/GLESv1_enc ${GOLDFISH_DEVICE_ROOT}/shared/OpenglCodecCommon ${GOLDFISH_DEVICE_ROOT}/android-emu ${GOLDFISH_DEVICE_ROOT}/shared/qemupipe/include-types ${GOLDFISH_DEVICE_ROOT}/shared/qemupipe/include ${GOLDFISH_DEVICE_ROOT}/./host/include/libOpenglRender ${GOLDFISH_DEVICE_ROOT}/./system/include ${GOLDFISH_DEVICE_ROOT}/./../../../external/qemu/android/android-emugl/guest)
diff --git a/system/hals/Android.mk b/system/hals/Android.mk
index 1641d23..72ac6ce 100644
--- a/system/hals/Android.mk
+++ b/system/hals/Android.mk
@@ -18,6 +18,9 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := android.hardware.graphics.allocator@3.0-service
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE
 LOCAL_MODULE_RELATIVE_PATH := hw
 LOCAL_VENDOR_MODULE := true
 LOCAL_SRC_FILES := allocator3.cpp
@@ -54,6 +57,9 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := android.hardware.graphics.mapper@3.0-impl-ranchu
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE
 LOCAL_MODULE_RELATIVE_PATH := hw
 LOCAL_VENDOR_MODULE := true
 LOCAL_SRC_FILES := mapper3.cpp
@@ -87,4 +93,3 @@
 LOCAL_SHARED_LIBRARIES += libdrm
 
 include $(BUILD_SHARED_LIBRARY)
-
diff --git a/system/hwc2/Android.mk b/system/hwc2/Android.mk
index 24a8a58..e8f53f9 100644
--- a/system/hwc2/Android.mk
+++ b/system/hwc2/Android.mk
@@ -22,6 +22,7 @@
     liblog \
     libutils \
     libcutils \
+    libdrm \
     libEGL \
     libutils \
     libhardware \
@@ -41,7 +42,8 @@
     device/generic/goldfish-opengl/system/OpenglSystemCommon \
     device/generic/goldfish-opengl/host/include/libOpenglRender \
     device/generic/goldfish-opengl/shared/OpenglCodecCommon \
-    device/generic/goldfish-opengl/system/renderControl_enc
+    device/generic/goldfish-opengl/system/renderControl_enc \
+    external/libdrm
 
 emulator_hwcomposer_relative_path := hw
 
@@ -56,9 +58,28 @@
 LOCAL_SHARED_LIBRARIES += libui
 LOCAL_SRC_FILES := $(emulator_hwcomposer2_src_files)
 LOCAL_C_INCLUDES := $(emulator_hwcomposer_c_includes)
+LOCAL_C_INCLUDES += external/drm_hwcomposer
+LOCAL_C_INCLUDES += external/minigbm/cros_gralloc
 LOCAL_MODULE_RELATIVE_PATH := $(emulator_hwcomposer_relative_path)
 
 LOCAL_MODULE := hwcomposer.ranchu
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE
 LOCAL_MODULE_TAGS := optional
 
 include $(BUILD_SHARED_LIBRARY)
+
+include $(CLEAR_VARS)
+LOCAL_VENDOR_MODULE := true
+LOCAL_SRC_FILES := drmTest.cpp
+LOCAL_SHARED_LIBRARIES := $(emulator_hwcomposer_shared_libraries)
+LOCAL_SHARED_LIBRARIES += libOpenglSystemCommon lib_renderControl_enc
+LOCAL_SHARED_LIBRARIES += libui
+LOCAL_SHARED_LIBRARIES += libdrm
+LOCAL_C_INCLUDES := $(emulator_hwcomposer_c_includes)
+LOCAL_C_INCLUDES += external/libdrm
+LOCAL_C_INCLUDES += external/drm_hwcomposer
+LOCAL_C_INCLUDES += external/minigbm/cros_gralloc
+LOCAL_MODULE := emulatorDrmTest
+include $(BUILD_EXECUTABLE)
diff --git a/system/hwc2/EmuHWC2.cpp b/system/hwc2/EmuHWC2.cpp
index 466ab5e..5faec36 100644
--- a/system/hwc2/EmuHWC2.cpp
+++ b/system/hwc2/EmuHWC2.cpp
@@ -29,11 +29,17 @@
 #include <EGL/eglext.h>
 #include <ui/GraphicBuffer.h>
 #include <ui/GraphicBufferAllocator.h>
+#include <ui/GraphicBufferMapper.h>
 
+#include "cros_gralloc_handle.h"
 #include "../egl/goldfish_sync.h"
 
 #include "ThreadInfo.h"
 
+#include <drm/virtgpu_drm.h>
+#include <xf86drm.h>
+#include <poll.h>
+
 #if defined(LOG_NNDEBUG) && LOG_NNDEBUG == 0
 #define ALOGVV ALOGV
 #else
@@ -418,8 +424,9 @@
 // Display functions
 
 #define VSYNC_PERIOD_PROP "ro.kernel.qemu.vsync"
+#define GRALLOC_PROP "ro.hardware.gralloc"
 
-static int getVsyncPeriodFromProperty() {
+static int getVsyncHzFromProperty() {
     char displaysValue[PROPERTY_VALUE_MAX] = "";
     property_get(VSYNC_PERIOD_PROP, displaysValue, "");
     bool isValid = displaysValue[0] != '\0';
@@ -435,17 +442,36 @@
     return static_cast<int>(vsyncPeriodParsed);
 }
 
+static bool getIsMinigbmFromProperty() {
+    char grallocValue[PROPERTY_VALUE_MAX] = "";
+    property_get(GRALLOC_PROP, grallocValue, "");
+    bool isValid = grallocValue[0] != '\0';
+
+    if (!isValid) return false;
+
+    bool res = 0 == strcmp("minigbm", grallocValue);
+
+    if (res) {
+        ALOGD("%s: Is using minigbm, in minigbm mode.\n", __func__);
+    } else {
+        ALOGD("%s: Is not using minigbm, in goldfish mode.\n", __func__);
+    }
+
+    return res;
+}
+
 std::atomic<hwc2_display_t> EmuHWC2::Display::sNextId(0);
 
 EmuHWC2::Display::Display(EmuHWC2& device, DisplayType type, int width, int height)
   : mDevice(device),
+    mIsMinigbm(getIsMinigbmFromProperty()),
     mId(sNextId++),
     mHostDisplayId(0),
     mName(),
     mType(type),
     mPowerMode(PowerMode::Off),
     mVsyncEnabled(Vsync::Invalid),
-    mVsyncPeriod(1000*1000*1000/getVsyncPeriodFromProperty()), // vsync is 60 hz
+    mVsyncPeriod(1000*1000*1000/getVsyncHzFromProperty()), // vsync is 60 hz
     mVsyncThread(*this),
     mClientTarget(),
     mChanges(),
@@ -457,8 +483,16 @@
     mColorModes(),
     mSetColorTransform(false),
     mStateMutex() {
-        mVsyncThread.run("", ANDROID_PRIORITY_URGENT_DISPLAY);
-        mTargetCb = device.allocateDisplayColorBuffer(width, height);
+
+    mTargetCb = device.allocateDisplayColorBuffer(width, height);
+
+    if (mIsMinigbm) {
+
+        mTargetDrmBuffer.reset(new DrmBuffer(mTargetCb, mDevice.mVirtioGpu));
+        mVsyncPeriod = 1000*1000*1000 / mDevice.mVirtioGpu.refreshRate();
+    }
+
+    mVsyncThread.run("", ANDROID_PRIORITY_URGENT_DISPLAY);
 }
 
 EmuHWC2::Display::~Display() {
@@ -768,8 +802,14 @@
         if (numLayer == 0) {
             ALOGW("No layers, exit, buffer %p", mClientTarget.getBuffer());
             if (mClientTarget.getBuffer()) {
-                post(hostCon, rcEnc, mClientTarget.getBuffer());
-                *outRetireFence = mClientTarget.getFence();
+                if (mIsMinigbm) {
+                    int retireFence = mClientTargetDrmBuffer->flush();
+                    *outRetireFence = dup(retireFence);
+                    close(retireFence);
+                } else {
+                    post(hostCon, rcEnc, mClientTarget.getBuffer());
+                    *outRetireFence = mClientTarget.getFence();
+                }
             }
             return Error::None;
         }
@@ -863,24 +903,48 @@
 
         hostCon->lock();
         if (rcEnc->hasAsyncFrameCommands()) {
-            if (hostCompositionV1) {
-                rcEnc->rcComposeAsync(rcEnc,
-                        sizeof(ComposeDevice) + numLayer * sizeof(ComposeLayer),
-                        (void *)p);
+            if (mIsMinigbm) {
+                if (hostCompositionV1) {
+                    rcEnc->rcComposeAsyncWithoutPost(rcEnc,
+                            sizeof(ComposeDevice) + numLayer * sizeof(ComposeLayer),
+                            (void *)p);
+                } else {
+                    rcEnc->rcComposeAsyncWithoutPost(rcEnc,
+                            sizeof(ComposeDevice_v2) + numLayer * sizeof(ComposeLayer),
+                            (void *)p2);
+                }
             } else {
-                rcEnc->rcComposeAsync(rcEnc,
-                        sizeof(ComposeDevice_v2) + numLayer * sizeof(ComposeLayer),
-                        (void *)p2);
+                if (hostCompositionV1) {
+                    rcEnc->rcComposeAsync(rcEnc,
+                            sizeof(ComposeDevice) + numLayer * sizeof(ComposeLayer),
+                            (void *)p);
+                } else {
+                    rcEnc->rcComposeAsync(rcEnc,
+                            sizeof(ComposeDevice_v2) + numLayer * sizeof(ComposeLayer),
+                            (void *)p2);
+                }
             }
         } else {
-            if (hostCompositionV1) {
-                rcEnc->rcCompose(rcEnc,
-                        sizeof(ComposeDevice) + numLayer * sizeof(ComposeLayer),
-                        (void *)p);
+            if (mIsMinigbm) {
+                if (hostCompositionV1) {
+                    rcEnc->rcComposeWithoutPost(rcEnc,
+                            sizeof(ComposeDevice) + numLayer * sizeof(ComposeLayer),
+                            (void *)p);
+                } else {
+                    rcEnc->rcComposeWithoutPost(rcEnc,
+                            sizeof(ComposeDevice_v2) + numLayer * sizeof(ComposeLayer),
+                            (void *)p2);
+                }
             } else {
-                rcEnc->rcCompose(rcEnc,
-                        sizeof(ComposeDevice_v2) + numLayer * sizeof(ComposeLayer),
-                        (void *)p2);
+                if (hostCompositionV1) {
+                    rcEnc->rcCompose(rcEnc,
+                            sizeof(ComposeDevice) + numLayer * sizeof(ComposeLayer),
+                            (void *)p);
+                } else {
+                    rcEnc->rcCompose(rcEnc,
+                            sizeof(ComposeDevice_v2) + numLayer * sizeof(ComposeLayer),
+                            (void *)p2);
+                }
             }
         }
 
@@ -899,8 +963,12 @@
                 &sync_handle, &thread_handle);
         hostCon->unlock();
 
-        goldfish_sync_queue_work(mSyncDeviceFd,
-                sync_handle, thread_handle, &retire_fd);
+        if (mIsMinigbm) {
+            retire_fd = -1;
+            retire_fd = mTargetDrmBuffer->flush();
+        } else {
+            goldfish_sync_queue_work(mSyncDeviceFd, sync_handle, thread_handle, &retire_fd);
+        }
 
         for (size_t i = 0; i < mReleaseLayerIds.size(); ++i) {
             mReleaseFences.push_back(dup(retire_fd));
@@ -915,10 +983,17 @@
             rcEnc->rcDestroySyncKHR(rcEnc, sync_handle);
         }
         hostCon->unlock();
+
     } else {
         // we set all layers Composition::Client, so do nothing.
-        post(hostCon, rcEnc, mClientTarget.getBuffer());
-        *outRetireFence = mClientTarget.getFence();
+        if (mIsMinigbm) {
+            int retireFence = mClientTargetDrmBuffer->flush();
+            *outRetireFence = dup(retireFence);
+            close(retireFence);
+        } else {
+            post(hostCon, rcEnc, mClientTarget.getBuffer());
+            *outRetireFence = mClientTarget.getFence();
+        }
         ALOGV("%s fallback to post, returns outRetireFence %d",
               __FUNCTION__, *outRetireFence);
     }
@@ -951,6 +1026,12 @@
     std::unique_lock<std::mutex> lock(mStateMutex);
     mClientTarget.setBuffer(target);
     mClientTarget.setFence(acquireFence);
+
+    // drm buffer
+    if (mIsMinigbm) {
+        mClientTargetDrmBuffer.reset(
+            new DrmBuffer(static_cast<const native_handle_t*>(target), mDevice.mVirtioGpu));
+    }
     return Error::None;
 }
 
@@ -1324,7 +1405,9 @@
     mActiveColorMode = HAL_COLOR_MODE_NATIVE;
     mColorModes.emplace((android_color_mode_t)HAL_COLOR_MODE_NATIVE);
 
-    mSyncDeviceFd = goldfish_sync_open();
+    if (!mIsMinigbm) {
+        mSyncDeviceFd = goldfish_sync_open();
+    }
 
     return 0;
 }
@@ -1332,6 +1415,7 @@
 void EmuHWC2::Display::post(HostConnection *hostCon,
                             ExtendedRCEncoderContext *rcEnc,
                             buffer_handle_t h) {
+    return;
     assert(cb && "native_handle_t::from(h) failed");
 
     hostCon->lock();
@@ -1631,6 +1715,348 @@
     return Error::None;
 }
 
+// VirtioGPU
+EmuHWC2::VirtioGpu::VirtioGpu() {
+    drmModeRes *res;
+    drmModeConnector *conn;
+
+    mFd = open("/dev/dri/card0", O_RDWR | O_CLOEXEC);
+    if (mFd < 0) {
+        ALOGE("%s Error opening virtioGPU device: %d", __func__, errno);
+        return;
+    }
+
+    int univRet = drmSetClientCap(mFd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
+    if (univRet) {
+        ALOGE("%s: fail to set universal plane %d\n", __func__, univRet);
+    }
+
+    int atomicRet = drmSetClientCap(mFd, DRM_CLIENT_CAP_ATOMIC, 1);
+
+    if (atomicRet) {
+        ALOGE("%s: fail to set atomic operation %d, %d\n", __func__, atomicRet, errno);
+    }
+
+    ALOGD("%s: Did set universal planes and atomic cap\n", __func__);
+
+    res = drmModeGetResources(mFd);
+    if (res == nullptr) {
+        ALOGE("%s Error reading drm resources: %d", __func__, errno);
+        close(mFd);
+        mFd = -1;
+        return;
+    }
+
+    mCrtcId = res->crtcs[0];
+    mConnectorId = res->connectors[0];
+
+    drmModePlaneResPtr plane_res = drmModeGetPlaneResources(mFd);
+    for (uint32_t i = 0; i < plane_res->count_planes; ++i) {
+        drmModePlanePtr plane = drmModeGetPlane(mFd, plane_res->planes[i]);
+        ALOGD("%s: plane id: %u crtcid %u fbid %u crtc xy %d %d xy %d %d\n", __func__,
+                plane->plane_id,
+                plane->crtc_id,
+                plane->fb_id,
+                plane->crtc_x,
+                plane->crtc_y,
+                plane->x,
+                plane->y);
+
+        drmModeObjectPropertiesPtr planeProps = drmModeObjectGetProperties(mFd, plane->plane_id, DRM_MODE_OBJECT_PLANE);
+        bool found = false;
+        bool isPrimaryOrOverlay = false;
+        for (int i = 0; !found && (size_t)i < planeProps->count_props; ++i) {
+            drmModePropertyPtr p = drmModeGetProperty(mFd, planeProps->props[i]);
+            if (!strcmp(p->name, "CRTC_ID")) {
+                mPlaneCrtcPropertyId = p->prop_id;
+                ALOGD("%s: Found plane crtc property id. id: %u\n", __func__,
+                        mPlaneCrtcPropertyId);
+            } else if (!strcmp(p->name, "FB_ID")) {
+                mPlaneFbPropertyId = p->prop_id;
+                ALOGD("%s: Found plane fb property id. id: %u\n", __func__,
+                        mPlaneFbPropertyId);
+            } else if (!strcmp(p->name, "CRTC_X")) {
+                mPlaneCrtcXPropertyId = p->prop_id;
+                ALOGD("%s: Found plane crtc X property id. id: %u\n", __func__,
+                        mPlaneCrtcXPropertyId);
+            } else if (!strcmp(p->name, "CRTC_Y")) {
+                mPlaneCrtcYPropertyId = p->prop_id;
+                ALOGD("%s: Found plane crtc Y property id. id: %u\n", __func__,
+                        mPlaneCrtcYPropertyId);
+            } else if (!strcmp(p->name, "CRTC_W")) {
+                mPlaneCrtcWPropertyId = p->prop_id;
+                ALOGD("%s: Found plane crtc W property id. id: %u value: %u\n", __func__,
+                        mPlaneCrtcWPropertyId, (uint32_t)p->values[0]);
+            } else if (!strcmp(p->name, "CRTC_H")) {
+                mPlaneCrtcHPropertyId = p->prop_id;
+                ALOGD("%s: Found plane crtc H property id. id: %u value: %u\n", __func__,
+                        mPlaneCrtcHPropertyId,
+                        (uint32_t)p->values[0]);
+            } else if (!strcmp(p->name, "SRC_X")) {
+                mPlaneSrcXPropertyId = p->prop_id;
+                ALOGD("%s: Found plane src X property id. id: %u\n", __func__,
+                        mPlaneSrcXPropertyId);
+            } else if (!strcmp(p->name, "SRC_Y")) {
+                mPlaneSrcYPropertyId = p->prop_id;
+                ALOGD("%s: Found plane src Y property id. id: %u\n", __func__,
+                        mPlaneSrcYPropertyId);
+            } else if (!strcmp(p->name, "SRC_W")) {
+                mPlaneSrcWPropertyId = p->prop_id;
+                ALOGD("%s: Found plane src W property id. id: %u\n", __func__,
+                        mPlaneSrcWPropertyId);
+            } else if (!strcmp(p->name, "SRC_H")) {
+                mPlaneSrcHPropertyId = p->prop_id;
+                ALOGD("%s: Found plane src H property id. id: %u\n", __func__,
+                        mPlaneSrcHPropertyId);
+            } else if (!strcmp(p->name, "type")) {
+                mPlaneTypePropertyId = p->prop_id;
+                ALOGD("%s: Found plane type property id. id: %u\n", __func__,
+                        mPlaneTypePropertyId);
+                ALOGD("%s: Plane property type value 0x%llx\n", __func__, (unsigned long long)p->values[0]);
+                uint64_t type = p->values[0];
+                switch (type) {
+                    case DRM_PLANE_TYPE_OVERLAY:
+                    case DRM_PLANE_TYPE_PRIMARY:
+                        isPrimaryOrOverlay = true;
+                        ALOGD("%s: Found a primary or overlay plane. plane id: %u type 0x%llx\n", __func__, plane->plane_id, (unsigned long long)type);
+                        break;
+                    default:
+                        break;
+                }
+            }
+            drmModeFreeProperty(p);
+        }
+        drmModeFreeObjectProperties(planeProps);
+
+        if (isPrimaryOrOverlay && ((1 << 0) & plane->possible_crtcs)) {
+            mPlaneId = plane->plane_id;
+            ALOGD("%s: found plane compatible with crtc id %d: %d\n", __func__, mCrtcId, mPlaneId);
+            drmModeFreePlane(plane);
+            break;
+        }
+
+        drmModeFreePlane(plane);
+    }
+    drmModeFreePlaneResources(plane_res);
+
+    conn = drmModeGetConnector(mFd, mConnectorId);
+    if (conn == nullptr) {
+        ALOGE("%s Error reading drm connector %d: %d", __func__, mConnectorId, errno);
+        drmModeFreeResources(res);
+        close(mFd);
+        mFd = -1;
+        return;
+    }
+    memcpy(&mMode, &conn->modes[0], sizeof(drmModeModeInfo));
+
+    drmModeCreatePropertyBlob(mFd, &mMode, sizeof(mMode), &mModeBlobId);
+
+    mRefreshRateAsFloat = 1000.0f * mMode.clock / ((float)mMode.vtotal * (float)mMode.htotal);
+    mRefreshRateAsInteger = (uint32_t)(mRefreshRateAsFloat + 0.5f);
+
+    ALOGD("%s: using drm init. refresh rate of system is %f, rounding to %d. blob id %d\n", __func__,
+          mRefreshRateAsFloat, mRefreshRateAsInteger, mModeBlobId);
+
+    {
+        drmModeObjectPropertiesPtr connectorProps = drmModeObjectGetProperties(mFd, mConnectorId, DRM_MODE_OBJECT_CONNECTOR);
+        bool found = false;
+        for (int i = 0; !found && (size_t)i < connectorProps->count_props; ++i) {
+            drmModePropertyPtr p = drmModeGetProperty(mFd, connectorProps->props[i]);
+            if (!strcmp(p->name, "CRTC_ID")) {
+                mConnectorCrtcPropertyId = p->prop_id;
+                ALOGD("%s: Found connector crtc id prop id: %u\n", __func__,
+                      mConnectorCrtcPropertyId);
+                found = true;
+            }
+            drmModeFreeProperty(p);
+        }
+        drmModeFreeObjectProperties(connectorProps);
+    }
+
+    {
+        drmModeObjectPropertiesPtr crtcProps = drmModeObjectGetProperties(mFd, mCrtcId, DRM_MODE_OBJECT_CRTC);
+        bool found = false;
+        for (int i = 0; !found && (size_t)i < crtcProps->count_props; ++i) {
+            drmModePropertyPtr p = drmModeGetProperty(mFd, crtcProps->props[i]);
+            if (!strcmp(p->name, "OUT_FENCE_PTR")) {
+                mOutFencePtrId = p->prop_id;
+                ALOGD("%s: Found out fence ptr id. id: %u\n", __func__,
+                      mOutFencePtrId);
+            } else if (!strcmp(p->name, "ACTIVE")) {
+                mCrtcActivePropretyId = p->prop_id;
+                ALOGD("%s: Found out crtc active prop id %u\n", __func__,
+                      mCrtcActivePropretyId);
+            } else if (!strcmp(p->name, "MODE_ID")) {
+                mCrtcModeIdPropertyId = p->prop_id;
+                ALOGD("%s: Found out crtc mode id prop id %u\n", __func__,
+                      mCrtcModeIdPropertyId);
+            }
+            drmModeFreeProperty(p);
+        }
+        drmModeFreeObjectProperties(crtcProps);
+    }
+
+    drmModeFreeConnector(conn);
+    drmModeFreeResources(res);
+    ALOGD("%s: Successfully initialized DRM backend", __func__);
+}
+
+EmuHWC2::VirtioGpu::~VirtioGpu() {
+    close(mFd);
+}
+
+int EmuHWC2::VirtioGpu::setCrtc(hwc_drm_bo_t& bo) {
+    int ret = drmModeSetCrtc(mFd, mCrtcId, bo.fb_id,
+                             0, 0, &mConnectorId, 1, &mMode);
+    ALOGV("%s: drm FB %d", __func__, bo.fb_id);
+    if (ret) {
+        ALOGE("%s: drmModeSetCrtc failed: %s (errno %d)",
+              __func__, strerror(errno), errno);
+        return -1;
+    }
+    return 0;
+}
+
+int EmuHWC2::VirtioGpu::getDrmFB(hwc_drm_bo_t& bo) {
+    int ret = drmPrimeFDToHandle(mFd, bo.prime_fds[0], &bo.gem_handles[0]);
+    if (ret) {
+        ALOGE("%s: drmPrimeFDToHandle failed: %s (errno %d)",
+              __func__, strerror(errno), errno);
+        return -1;
+    }
+    ret = drmModeAddFB2(mFd, bo.width, bo.height, bo.format,
+                        bo.gem_handles, bo.pitches, bo.offsets,
+                        &bo.fb_id, 0);
+    if (ret) {
+        ALOGE("%s: drmModeAddFB2 failed: %s (errno %d)",
+              __func__, strerror(errno), errno);
+        return -1;
+    }
+    ALOGV("%s: drm FB %d", __func__, bo.fb_id);
+    return 0;
+}
+
+int EmuHWC2::VirtioGpu::clearDrmFB(hwc_drm_bo_t& bo) {
+    int ret = 0;
+    if (bo.fb_id) {
+        if (drmModeRmFB(mFd, bo.fb_id)) {
+            ALOGE("%s: drmModeRmFB failed: %s (errno %d)",
+                  __func__, strerror(errno), errno);
+        }
+        ret = -1;
+    }
+    if (bo.gem_handles[0]) {
+        struct drm_gem_close gem_close = {};
+        gem_close.handle = bo.gem_handles[0];
+        if (drmIoctl(mFd, DRM_IOCTL_GEM_CLOSE, &gem_close)) {
+            ALOGE("%s: DRM_IOCTL_GEM_CLOSE failed: %s (errno %d)",
+                  __func__, strerror(errno), errno);
+        }
+        ret = -1;
+    }
+    ALOGV("%s: drm FB %d", __func__, bo.fb_id);
+    return ret;
+}
+
+bool EmuHWC2::VirtioGpu::supportComposeWithoutPost() {
+    return true;
+}
+
+int EmuHWC2::VirtioGpu::exportSyncFdAndSetCrtc(hwc_drm_bo_t& bo) {
+    mOutFence = -1;
+
+    drmModeAtomicReqPtr pset = drmModeAtomicAlloc();
+
+    int ret;
+
+    if (!mDidSetCrtc) {
+        ALOGVV("%s: Setting crtc.\n", __func__);
+        ret = drmModeAtomicAddProperty(pset, mCrtcId, mCrtcActivePropretyId, 1);
+        if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+        ret = drmModeAtomicAddProperty(pset, mCrtcId, mCrtcModeIdPropertyId, mModeBlobId);
+        if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+        ret = drmModeAtomicAddProperty(pset, mConnectorId, mConnectorCrtcPropertyId, mCrtcId);
+        if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+
+        mDidSetCrtc = true;
+    } else {
+        ALOGVV("%s: Already set crtc\n", __func__);
+    }
+
+    ret = drmModeAtomicAddProperty(pset, mCrtcId, mOutFencePtrId, (uint64_t)(&mOutFence));
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+
+    ALOGVV("%s: set plane: plane id %d crtcid %d fbid %d bo w h %d %d\n", __func__,
+            mPlaneId, mCrtcId, bo.fb_id, bo.width, bo.height);
+
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneCrtcPropertyId, mCrtcId);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneFbPropertyId, bo.fb_id);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneCrtcXPropertyId, 0);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneCrtcYPropertyId, 0);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneCrtcWPropertyId, bo.width);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneCrtcHPropertyId, bo.height);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneSrcXPropertyId, 0);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneSrcYPropertyId, 0);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneSrcWPropertyId, bo.width << 16);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+    ret = drmModeAtomicAddProperty(pset, mPlaneId, mPlaneSrcHPropertyId, bo.height << 16);
+    if (ret < 0) { ALOGE("%s:%d: failed %d errno %d\n", __func__, __LINE__, ret, errno); }
+
+    uint32_t flags = DRM_MODE_ATOMIC_ALLOW_MODESET;
+    ret = drmModeAtomicCommit(mFd, pset, flags, 0);
+
+    if (ret) {
+        ALOGE("%s: Atomic commit failed with %d %d\n", __func__,
+              ret, errno);
+    }
+
+    if (pset)
+        drmModeAtomicFree(pset);
+
+    ALOGVV("%s: out fence: %d\n", __func__, mOutFence);
+    return mOutFence;
+}
+
+EmuHWC2::DrmBuffer::DrmBuffer(const native_handle_t* handle,
+                              VirtioGpu& virtioGpu)
+  : mVirtioGpu(virtioGpu), mBo({}) {
+    if (!convertBoInfo(handle)) {
+        mVirtioGpu.getDrmFB(mBo);
+    }
+}
+
+EmuHWC2::DrmBuffer::~DrmBuffer() {
+    mVirtioGpu.clearDrmFB(mBo);
+}
+
+int EmuHWC2::DrmBuffer::convertBoInfo(const native_handle_t* handle) {
+    cros_gralloc_handle *gr_handle = (cros_gralloc_handle *)handle;
+    if (!gr_handle) {
+      ALOGE("%s: Null buffer handle", __func__);
+      return -1;
+    }
+    mBo.width = gr_handle->width;
+    mBo.height = gr_handle->height;
+    mBo.hal_format = gr_handle->droid_format;
+    mBo.format = gr_handle->format;
+    mBo.usage = gr_handle->usage;
+    mBo.prime_fds[0] = gr_handle->fds[0];
+    mBo.pitches[0] = gr_handle->strides[0];
+    return 0;
+}
+
+int EmuHWC2::DrmBuffer::flush() {
+    return mVirtioGpu.exportSyncFdAndSetCrtc(mBo);
+}
+
 // Adaptor Helpers
 
 void EmuHWC2::populateCapabilities() {
diff --git a/system/hwc2/EmuHWC2.h b/system/hwc2/EmuHWC2.h
index 4ab09e1..d0fb01a 100644
--- a/system/hwc2/EmuHWC2.h
+++ b/system/hwc2/EmuHWC2.h
@@ -35,9 +35,12 @@
 #include <unordered_set>
 #include <unordered_map>
 #include <set>
+#include <xf86drm.h>
+#include <xf86drmMode.h>
 
 #include <cutils/native_handle.h>
 
+#include "include/drmhwcgralloc.h"
 #include "HostConnection.h"
 
 namespace android {
@@ -203,6 +206,65 @@
         ComposeDevice_v2* mComposeDevice;
     };
 
+    class VirtioGpu {
+    public:
+        VirtioGpu();
+        ~VirtioGpu();
+        int setCrtc(hwc_drm_bo_t& fb);
+        int getDrmFB(hwc_drm_bo_t& bo);
+        int clearDrmFB(hwc_drm_bo_t& bo);
+        bool supportComposeWithoutPost();
+        uint32_t refreshRate() const {
+            return mRefreshRateAsInteger;
+        }
+
+        int exportSyncFdAndSetCrtc(hwc_drm_bo_t& fb);
+
+    private:
+        drmModeModeInfo mMode;
+        int32_t mFd = -1;
+        uint32_t mConnectorId;
+        uint32_t mCrtcId;
+
+        uint32_t mConnectorCrtcPropertyId;
+
+        uint32_t mOutFencePtrId;
+        uint32_t mCrtcActivePropretyId;
+        uint32_t mCrtcModeIdPropertyId;
+        uint32_t mModeBlobId;
+
+        uint32_t mPlaneId;
+        uint32_t mPlaneCrtcPropertyId;
+        uint32_t mPlaneFbPropertyId;
+        uint32_t mPlaneCrtcXPropertyId;
+        uint32_t mPlaneCrtcYPropertyId;
+        uint32_t mPlaneCrtcWPropertyId;
+        uint32_t mPlaneCrtcHPropertyId;
+        uint32_t mPlaneSrcXPropertyId;
+        uint32_t mPlaneSrcYPropertyId;
+        uint32_t mPlaneSrcWPropertyId;
+        uint32_t mPlaneSrcHPropertyId;
+        uint32_t mPlaneTypePropertyId;
+        float mRefreshRateAsFloat;
+        uint32_t mRefreshRateAsInteger;
+
+        int mOutFence;
+
+        bool mDidSetCrtc = false;
+    };
+
+    class DrmBuffer {
+    public:
+        DrmBuffer(const native_handle_t* handle, VirtioGpu& virtioGpu);
+        ~DrmBuffer();
+        int flush();
+    private:
+        int convertBoInfo(const native_handle_t* handle);
+        VirtioGpu& mVirtioGpu;
+        hwc_drm_bo_t mBo;
+    };
+
+
     class Display {
     public:
         Display(EmuHWC2& device, HWC2::DisplayType type, int width, int height);
@@ -347,6 +409,7 @@
         // Display ID generator.
         static std::atomic<hwc2_display_t> sNextId;
         static const uint32_t hostDisplayIdStart = 6;
+        bool mIsMinigbm;
         const hwc2_display_t mId;
         // emulator side displayId
         uint32_t mHostDisplayId;
@@ -378,6 +441,8 @@
         std::unique_ptr<ComposeMsg_v2> mComposeMsg_v2;
         int mSyncDeviceFd;
         const native_handle_t* mTargetCb;
+        std::unique_ptr<DrmBuffer> mTargetDrmBuffer;
+        std::unique_ptr<DrmBuffer> mClientTargetDrmBuffer;
     };
 
     template<typename MF, MF memFunc, typename ...Args>
@@ -490,6 +555,8 @@
     int mDisplayHeight;
     int mDisplayDpiX;
     int mDisplayDpiY;
+
+    VirtioGpu mVirtioGpu;
 };
 
 }
diff --git a/system/hwc2/drmTest.cpp b/system/hwc2/drmTest.cpp
new file mode 100644
index 0000000..90d4341
--- /dev/null
+++ b/system/hwc2/drmTest.cpp
@@ -0,0 +1,301 @@
+#include <errno.h>
+#include <fcntl.h>
+#include <stdbool.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/mman.h>
+#include <time.h>
+#include <unistd.h>
+#include <xf86drm.h>
+#include <xf86drmMode.h>
+#include <ui/GraphicBuffer.h>
+#include <ui/GraphicBufferAllocator.h>
+#include "HostConnection.h"
+#include "cros_gralloc_handle.h"
+
+using namespace android;
+
+struct buffer_object {
+    uint32_t width;
+    uint32_t height;
+    uint32_t pitch;
+    uint32_t handle;
+    uint32_t size;
+    uint8_t *vaddr;
+    uint32_t fb_id;
+    const native_handle_t* fb;
+};
+
+struct buffer_object buf;
+
+static int modeset_create_fb(int fd, struct buffer_object *bo)
+{
+    struct drm_mode_create_dumb create = {};
+    struct drm_mode_map_dumb map = {};
+
+    create.width = bo->width;
+    create.height = bo->height;
+    create.bpp = 32;
+    drmIoctl(fd, DRM_IOCTL_MODE_CREATE_DUMB, &create);
+    printf("create dumb w %d h %d\n", bo->width, bo->height);
+    getchar();
+
+    bo->pitch = create.pitch;
+    bo->size = create.size;
+    bo->handle = create.handle;
+    drmModeAddFB(fd, bo->width, bo->height, 24, 32, bo->pitch,
+    bo->handle, &bo->fb_id);
+    printf("drmModeAddFB\n");
+    getchar();
+
+    map.handle = create.handle;
+    drmIoctl(fd, DRM_IOCTL_MODE_MAP_DUMB, &map);
+    printf("map dumb\n");
+    getchar();
+    bo->vaddr = static_cast<unsigned char*>(mmap64(0, create.size, PROT_READ | PROT_WRITE,
+                                                   MAP_SHARED, fd, map.offset));
+    memset(bo->vaddr, 0xff, bo->size);
+    return 0;
+}
+
+static void modeset_destroy_fb(int fd, struct buffer_object *bo)
+{
+    struct drm_mode_destroy_dumb destroy = {};
+
+    drmModeRmFB(fd, bo->fb_id);
+    munmap(bo->vaddr, bo->size);
+    destroy.handle = bo->handle;
+    drmIoctl(fd, DRM_IOCTL_MODE_DESTROY_DUMB, &destroy);
+}
+
+static uint32_t get_property_id(int fd, drmModeObjectProperties *props,
+                                const char *name)
+{
+    drmModePropertyPtr property;
+    uint32_t i, id = 0;
+
+    /* find property according to the name */
+    for (i = 0; i < props->count_props; i++) {
+        property = drmModeGetProperty(fd, props->props[i]);
+        if (!strcmp(property->name, name))
+        id = property->prop_id;
+        drmModeFreeProperty(property);
+        if (id) {
+            break;
+        }
+    }
+    return id;
+}
+
+static std::unique_ptr<HostConnection> sHostCon;
+
+static HostConnection* createOrGetHostConnection() {
+    if (!sHostCon) {
+        sHostCon = HostConnection::createUnique();
+    }
+    return sHostCon.get();
+}
+
+#define DEFINE_AND_VALIDATE_HOST_CONNECTION \
+    HostConnection *hostCon = createOrGetHostConnection(); \
+    if (!hostCon) { \
+        ALOGE("drmTest: Failed to get host connection\n"); \
+        return; \
+    } \
+    ExtendedRCEncoderContext *rcEnc = hostCon->rcEncoder(); \
+    if (!rcEnc) { \
+        ALOGE("drmTest: Failed to get renderControl encoder context\n"); \
+        return; \
+    }
+
+#include "include/drmhwcgralloc.h"
+void convertBoInfo(buffer_handle_t handle, hwc_drm_bo_t *bo) {
+  cros_gralloc_handle *gr_handle = (cros_gralloc_handle *)handle;
+  if (!gr_handle)
+    return;
+
+  bo->width = gr_handle->width;
+  bo->height = gr_handle->height;
+  bo->hal_format = gr_handle->droid_format;
+  bo->format = gr_handle->format;
+  bo->usage = gr_handle->usage;
+  bo->prime_fds[0] = gr_handle->fds[0];
+  bo->pitches[0] = gr_handle->strides[0];
+  bo->offsets[0] = gr_handle->offsets[0];
+}
+
+
+void grallocAllocBuffer(int fd, struct buffer_object *bo) {
+    buffer_handle_t h;
+    uint32_t stride;
+
+    if (GraphicBufferAllocator::get().allocate(
+        bo->width, bo->height,
+        android::PIXEL_FORMAT_RGBA_8888,
+        1,
+        (GraphicBuffer::USAGE_HW_COMPOSER | GraphicBuffer::USAGE_HW_RENDER),
+        &h, &stride,
+        0, "emulatorDrmTest") == android::OK) {
+        hwc_drm_bo tmp_bo{};
+        convertBoInfo(h, &tmp_bo);
+
+        int ret = drmPrimeFDToHandle(fd, tmp_bo.prime_fds[0], tmp_bo.gem_handles);
+        for (int i = 1; i < HWC_DRM_BO_MAX_PLANES; i++) {
+            tmp_bo.gem_handles[i] = tmp_bo.gem_handles[0];
+        }
+        if (ret) {
+            printf("%s: DRM_IOCTL_PRIME_FD_TO_HANDLE failed: %s (errno %d)\n",
+                  __func__, strerror(errno), errno);
+            return;
+        }
+        ret = drmModeAddFB2(fd, tmp_bo.width, tmp_bo.height, tmp_bo.format,
+                            tmp_bo.gem_handles, tmp_bo.pitches, tmp_bo.offsets, &bo->fb_id,
+                        0);
+
+        printf("allocate buffer\n");
+        DEFINE_AND_VALIDATE_HOST_CONNECTION
+        bo->fb = static_cast<const native_handle_t*>(h);
+        getchar();
+        printf("resource id is %d\n", hostCon->grallocHelper()->getHostHandle(bo->fb));
+    } else {
+        bo->fb = nullptr;
+    }
+}
+
+int main(int argc, char **argv)
+{
+    int fd;
+    drmModeConnector *conn;
+    drmModeRes *res;
+    drmModePlaneRes *plane_res = nullptr;
+    uint32_t conn_id;
+    uint32_t crtc_id;
+    uint32_t plane_id;
+
+    fd = open("/dev/dri/card0", O_RDWR | O_CLOEXEC);
+
+    int ret = drmSetClientCap(fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 0);
+    if (ret) {
+        printf("fail to set universal plane %d\n", ret);
+    }
+
+    res = drmModeGetResources(fd);
+    crtc_id = res->crtcs[0];
+    conn_id = res->connectors[0];
+
+    plane_res = drmModeGetPlaneResources(fd);
+    plane_id = plane_res->planes[0];
+
+    conn = drmModeGetConnector(fd, conn_id);
+    buf.width = conn->modes[0].hdisplay;
+    buf.height = conn->modes[0].vdisplay;
+     //modeset_create_fb(fd, &buf);
+    grallocAllocBuffer(fd, &buf);
+
+    drmModeSetCrtc(fd, crtc_id, buf.fb_id,
+                   0, 0, &conn_id, 1, &conn->modes[0]);
+    printf("drmModeSetCrtc\n");
+    getchar();
+
+    drmModePageFlip(fd, crtc_id, buf.fb_id, DRM_MODE_PAGE_FLIP_EVENT, &crtc_id);
+    printf("drmModePageFlip\n");
+    getchar();
+
+//    drmModeSetPlane(fd, plane_id, crtc_id, buf.fb_id, 0, 50, 50, 320, 320,
+//                    100 << 16, 150 << 16, 320 << 16, 320 << 16);
+//    printf("drmModeSetPlane\n");
+//    modeset_destroy_fb(fd, &buf);
+
+    drmModeFreeConnector(conn);
+    drmModeFreeResources(res);
+    close(fd);
+
+    return 0;
+}
+
+int main_atom(int argc, char **argv)
+{
+    int fd;
+    drmModeConnector *conn = nullptr;
+    drmModeRes *res = nullptr;
+    drmModePlaneRes *plane_res = nullptr;
+    drmModeObjectProperties *props = nullptr;
+    drmModeAtomicReq *req;
+    uint32_t conn_id;
+    uint32_t crtc_id;
+    uint32_t plane_id;
+    uint32_t blob_id;
+    uint32_t property_crtc_id;
+    uint32_t property_mode_id;
+    uint32_t property_active;
+
+    printf("drm available %d\n", drmAvailable());
+    fd = open("/dev/dri/card0", O_RDWR);
+    printf("openg drm fd %d\n", fd);
+
+    int ret = drmSetClientCap(fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
+    if (ret) {
+        printf("fail to set universal plane %d\n", ret);
+    }
+
+    ret = drmSetClientCap(fd, DRM_CLIENT_CAP_ATOMIC, 1);
+    if (ret) {
+        printf("fail to set atomic operation %d\n", ret);
+    }
+
+    res = drmModeGetResources(fd);
+    if (!res) {
+        printf("error to get drmModeGetResources: %d\n", errno);
+    }
+
+    crtc_id = res->crtcs[0];
+    conn_id = res->connectors[0];
+            plane_res = drmModeGetPlaneResources(fd);
+    plane_id = plane_res->planes[0];
+
+    conn = drmModeGetConnector(fd, conn_id);
+    buf.width = conn->modes[0].hdisplay;
+    buf.height = conn->modes[0].vdisplay;
+    modeset_create_fb(fd, &buf);
+
+    /* get connector properties */
+    props = drmModeObjectGetProperties(fd, conn_id, DRM_MODE_OBJECT_CONNECTOR);
+    property_crtc_id = get_property_id(fd, props, "CRTC_ID");
+    drmModeFreeObjectProperties(props);
+
+    /* get crtc properties */
+    props = drmModeObjectGetProperties(fd, crtc_id, DRM_MODE_OBJECT_CRTC);
+    property_active = get_property_id(fd, props, "ACTIVE");
+    property_mode_id = get_property_id(fd, props, "MODE_ID");
+    drmModeFreeObjectProperties(props);
+
+    /* create blob to store current mode, and return the blob id */
+    drmModeCreatePropertyBlob(fd, &conn->modes[0],
+    sizeof(conn->modes[0]), &blob_id);
+
+    /* start modeseting */
+    req = drmModeAtomicAlloc();
+    drmModeAtomicAddProperty(req, crtc_id, property_active, 1);
+    drmModeAtomicAddProperty(req, crtc_id, property_mode_id, blob_id);
+    drmModeAtomicAddProperty(req, conn_id, property_crtc_id, crtc_id);
+    drmModeAtomicCommit(fd, req, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
+    drmModeAtomicFree(req);
+    printf("drmModeAtomicCommit SetCrtc\n");
+    getchar();
+
+    drmModeSetPlane(fd, plane_id, crtc_id, buf.fb_id, 0,
+                    50, 50, 320, 320,
+                    0, 0, 320 << 16, 320 << 16);
+    printf("drmModeSetPlane\n");
+    getchar();
+
+    modeset_destroy_fb(fd, &buf);
+    drmModeFreeConnector(conn);
+    drmModeFreePlaneResources(plane_res);
+    drmModeFreeResources(res);
+    close(fd);
+
+    return 0;
+}
diff --git a/system/renderControl_enc/renderControl_client_context.cpp b/system/renderControl_enc/renderControl_client_context.cpp
index 9282791..d9d5b61 100644
--- a/system/renderControl_enc/renderControl_client_context.cpp
+++ b/system/renderControl_enc/renderControl_client_context.cpp
@@ -70,6 +70,8 @@
 	rcMakeCurrentAsync = (rcMakeCurrentAsync_client_proc_t) getProc("rcMakeCurrentAsync", userData);
 	rcComposeAsync = (rcComposeAsync_client_proc_t) getProc("rcComposeAsync", userData);
 	rcDestroySyncKHRAsync = (rcDestroySyncKHRAsync_client_proc_t) getProc("rcDestroySyncKHRAsync", userData);
+	rcComposeWithoutPost = (rcComposeWithoutPost_client_proc_t) getProc("rcComposeWithoutPost", userData);
+	rcComposeAsyncWithoutPost = (rcComposeAsyncWithoutPost_client_proc_t) getProc("rcComposeAsyncWithoutPost", userData);
 	return 0;
 }
 
diff --git a/system/renderControl_enc/renderControl_client_context.h b/system/renderControl_enc/renderControl_client_context.h
index 3a794d5..501de7f 100644
--- a/system/renderControl_enc/renderControl_client_context.h
+++ b/system/renderControl_enc/renderControl_client_context.h
@@ -70,6 +70,8 @@
 	rcMakeCurrentAsync_client_proc_t rcMakeCurrentAsync;
 	rcComposeAsync_client_proc_t rcComposeAsync;
 	rcDestroySyncKHRAsync_client_proc_t rcDestroySyncKHRAsync;
+	rcComposeWithoutPost_client_proc_t rcComposeWithoutPost;
+	rcComposeAsyncWithoutPost_client_proc_t rcComposeAsyncWithoutPost;
 	virtual ~renderControl_client_context_t() {}
 
 	typedef renderControl_client_context_t *CONTEXT_ACCESSOR_TYPE(void);
diff --git a/system/renderControl_enc/renderControl_client_proc.h b/system/renderControl_enc/renderControl_client_proc.h
index 8e7a377..e31e843 100644
--- a/system/renderControl_enc/renderControl_client_proc.h
+++ b/system/renderControl_enc/renderControl_client_proc.h
@@ -72,6 +72,8 @@
 typedef void (renderControl_APIENTRY *rcMakeCurrentAsync_client_proc_t) (void * ctx, uint32_t, uint32_t, uint32_t);
 typedef void (renderControl_APIENTRY *rcComposeAsync_client_proc_t) (void * ctx, uint32_t, void*);
 typedef void (renderControl_APIENTRY *rcDestroySyncKHRAsync_client_proc_t) (void * ctx, uint64_t);
+typedef GLint (renderControl_APIENTRY *rcComposeWithoutPost_client_proc_t) (void * ctx, uint32_t, void*);
+typedef void (renderControl_APIENTRY *rcComposeAsyncWithoutPost_client_proc_t) (void * ctx, uint32_t, void*);
 
 
 #endif
diff --git a/system/renderControl_enc/renderControl_enc.cpp b/system/renderControl_enc/renderControl_enc.cpp
index e9a9f6c..5e6f751 100644
--- a/system/renderControl_enc/renderControl_enc.cpp
+++ b/system/renderControl_enc/renderControl_enc.cpp
@@ -2329,6 +2329,80 @@
 	stream->flush();
 }
 
+GLint rcComposeWithoutPost_enc(void *self , uint32_t bufferSize, void* buffer)
+{
+	AEMU_SCOPED_TRACE("rcComposeWithoutPost encode");
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+	ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
+	bool useChecksum = checksumCalculator->getVersion() > 0;
+
+	const unsigned int __size_buffer =  bufferSize;
+	 unsigned char *ptr;
+	 unsigned char *buf;
+	 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffer + 1*4;
+	 const size_t checksumSize = checksumCalculator->checksumByteSize();
+	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
+	buf = stream->alloc(totalSize);
+	ptr = buf;
+	int tmp = OP_rcComposeWithoutPost;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &totalSize, 4);  ptr += 4;
+
+		memcpy(ptr, &bufferSize, 4); ptr += 4;
+	memcpy(ptr, &__size_buffer, 4); ptr += 4;
+	memcpy(ptr, buffer, __size_buffer);ptr += __size_buffer;
+
+	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
+	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
+
+
+	GLint retval;
+	stream->readback(&retval, 4);
+	if (useChecksum) checksumCalculator->addBuffer(&retval, 4);
+	if (useChecksum) {
+		unsigned char *checksumBufPtr = NULL;
+		unsigned char checksumBuf[ChecksumCalculator::kMaxChecksumSize];
+		if (checksumSize > 0) checksumBufPtr = &checksumBuf[0];
+		stream->readback(checksumBufPtr, checksumSize);
+		if (!checksumCalculator->validate(checksumBufPtr, checksumSize)) {
+			ALOGE("rcComposeWithoutPost: GL communication error, please report this issue to b.android.com.\n");
+			abort();
+		}
+	}
+	return retval;
+}
+
+void rcComposeAsyncWithoutPost_enc(void *self , uint32_t bufferSize, void* buffer)
+{
+	AEMU_SCOPED_TRACE("rcComposeAsyncWithoutPost encode");
+
+	renderControl_encoder_context_t *ctx = (renderControl_encoder_context_t *)self;
+	IOStream *stream = ctx->m_stream;
+	ChecksumCalculator *checksumCalculator = ctx->m_checksumCalculator;
+	bool useChecksum = checksumCalculator->getVersion() > 0;
+
+	const unsigned int __size_buffer =  bufferSize;
+	 unsigned char *ptr;
+	 unsigned char *buf;
+	 const size_t sizeWithoutChecksum = 8 + 4 + __size_buffer + 1*4;
+	 const size_t checksumSize = checksumCalculator->checksumByteSize();
+	 const size_t totalSize = sizeWithoutChecksum + checksumSize;
+	buf = stream->alloc(totalSize);
+	ptr = buf;
+	int tmp = OP_rcComposeAsyncWithoutPost;memcpy(ptr, &tmp, 4); ptr += 4;
+	memcpy(ptr, &totalSize, 4);  ptr += 4;
+
+		memcpy(ptr, &bufferSize, 4); ptr += 4;
+	memcpy(ptr, &__size_buffer, 4); ptr += 4;
+	memcpy(ptr, buffer, __size_buffer);ptr += __size_buffer;
+
+	if (useChecksum) checksumCalculator->addBuffer(buf, ptr-buf);
+	if (useChecksum) checksumCalculator->writeChecksum(ptr, checksumSize); ptr += checksumSize;
+
+	stream->flush();
+}
+
 }  // namespace
 
 renderControl_encoder_context_t::renderControl_encoder_context_t(IOStream *stream, ChecksumCalculator *checksumCalculator)
@@ -2396,5 +2470,7 @@
 	this->rcMakeCurrentAsync = &rcMakeCurrentAsync_enc;
 	this->rcComposeAsync = &rcComposeAsync_enc;
 	this->rcDestroySyncKHRAsync = &rcDestroySyncKHRAsync_enc;
+	this->rcComposeWithoutPost = &rcComposeWithoutPost_enc;
+	this->rcComposeAsyncWithoutPost = &rcComposeAsyncWithoutPost_enc;
 }
 
diff --git a/system/renderControl_enc/renderControl_entry.cpp b/system/renderControl_enc/renderControl_entry.cpp
index 1eb08e5..305625b 100644
--- a/system/renderControl_enc/renderControl_entry.cpp
+++ b/system/renderControl_enc/renderControl_entry.cpp
@@ -65,6 +65,8 @@
 	void rcMakeCurrentAsync(uint32_t context, uint32_t drawSurf, uint32_t readSurf);
 	void rcComposeAsync(uint32_t bufferSize, void* buffer);
 	void rcDestroySyncKHRAsync(uint64_t sync);
+	GLint rcComposeWithoutPost(uint32_t bufferSize, void* buffer);
+	void rcComposeAsyncWithoutPost(uint32_t bufferSize, void* buffer);
 };
 
 #ifndef GET_CONTEXT
@@ -433,3 +435,15 @@
 	ctx->rcDestroySyncKHRAsync(ctx, sync);
 }
 
+GLint rcComposeWithoutPost(uint32_t bufferSize, void* buffer)
+{
+	GET_CONTEXT;
+	return ctx->rcComposeWithoutPost(ctx, bufferSize, buffer);
+}
+
+void rcComposeAsyncWithoutPost(uint32_t bufferSize, void* buffer)
+{
+	GET_CONTEXT;
+	ctx->rcComposeAsyncWithoutPost(ctx, bufferSize, buffer);
+}
+
diff --git a/system/renderControl_enc/renderControl_ftable.h b/system/renderControl_enc/renderControl_ftable.h
index cbbf6fc..2ee38b5 100644
--- a/system/renderControl_enc/renderControl_ftable.h
+++ b/system/renderControl_enc/renderControl_ftable.h
@@ -68,6 +68,8 @@
 	{"rcMakeCurrentAsync", (void*)rcMakeCurrentAsync},
 	{"rcComposeAsync", (void*)rcComposeAsync},
 	{"rcDestroySyncKHRAsync", (void*)rcDestroySyncKHRAsync},
+	{"rcComposeWithoutPost", (void*)rcComposeWithoutPost},
+	{"rcComposeAsyncWithoutPost", (void*)rcComposeAsyncWithoutPost},
 };
 static const int renderControl_num_funcs = sizeof(renderControl_funcs_by_name) / sizeof(struct _renderControl_funcs_by_name);
 
diff --git a/system/renderControl_enc/renderControl_opcodes.h b/system/renderControl_enc/renderControl_opcodes.h
index 2fb8e71..a3a6e27 100644
--- a/system/renderControl_enc/renderControl_opcodes.h
+++ b/system/renderControl_enc/renderControl_opcodes.h
@@ -63,7 +63,9 @@
 #define OP_rcMakeCurrentAsync 					10057
 #define OP_rcComposeAsync 					10058
 #define OP_rcDestroySyncKHRAsync 					10059
-#define OP_last 					10060
+#define OP_rcComposeWithoutPost 					10060
+#define OP_rcComposeAsyncWithoutPost 					10061
+#define OP_last 					10062
 
 
 #endif
diff --git a/system/vulkan_enc/Android.mk b/system/vulkan_enc/Android.mk
index db67c7f..5ac67ba 100644
--- a/system/vulkan_enc/Android.mk
+++ b/system/vulkan_enc/Android.mk
@@ -37,7 +37,7 @@
 LOCAL_CFLAGS += \
     -DLOG_TAG=\"goldfish_vulkan\" \
     -DVK_ANDROID_native_buffer \
-    -DVK_GOOGLE_address_space \
+    -DVK_GOOGLE_gfxstream \
     -Wno-missing-field-initializers \
     -Werror \
     -fstrict-aliasing \
diff --git a/system/vulkan_enc/CMakeLists.txt b/system/vulkan_enc/CMakeLists.txt
index 6f5863f..cb278a4 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" "b2ea43bfe142f827f65a5b0a7e0c810f58734f9f895075910855a833a18daecb")
+android_validate_sha256("${GOLDFISH_DEVICE_ROOT}/system/vulkan_enc/Android.mk" "30b3ec894ae23403552a6f5599135a4f2acabc09ba07609e5528f62de342df2b")
 set(vulkan_enc_src AndroidHardwareBuffer.cpp CommandBufferStagingStream.cpp HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStreamGuest.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_reserved_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_counting_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform_guest.cpp func_table.cpp)
 android_add_library(TARGET vulkan_enc SHARED LICENSE Apache-2.0 SRC AndroidHardwareBuffer.cpp CommandBufferStagingStream.cpp HostVisibleMemoryVirtualization.cpp Resources.cpp Validation.cpp VulkanStreamGuest.cpp VulkanHandleMapping.cpp ResourceTracker.cpp VkEncoder.cpp goldfish_vk_extension_structs_guest.cpp goldfish_vk_marshaling_guest.cpp goldfish_vk_reserved_marshaling_guest.cpp goldfish_vk_deepcopy_guest.cpp goldfish_vk_counting_guest.cpp goldfish_vk_handlemap_guest.cpp goldfish_vk_transform_guest.cpp func_table.cpp)
 target_include_directories(vulkan_enc PRIVATE ${GOLDFISH_DEVICE_ROOT}/shared/GoldfishAddressSpace/include ${GOLDFISH_DEVICE_ROOT}/system/renderControl_enc ${GOLDFISH_DEVICE_ROOT}/shared/OpenglCodecCommon ${GOLDFISH_DEVICE_ROOT}/android-emu ${GOLDFISH_DEVICE_ROOT}/shared/qemupipe/include-types ${GOLDFISH_DEVICE_ROOT}/shared/qemupipe/include ${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" "-DGFXSTREAM" "-DLOG_TAG=\"goldfish_vulkan\"" "-DVK_ANDROID_native_buffer" "-DVK_GOOGLE_address_space" "-DVK_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES" "-D__ANDROID_API__=28")
+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" "-DGFXSTREAM" "-DLOG_TAG=\"goldfish_vulkan\"" "-DVK_ANDROID_native_buffer" "-DVK_GOOGLE_gfxstream" "-DVK_USE_PLATFORM_ANDROID_KHR" "-DVK_NO_PROTOTYPES" "-D__ANDROID_API__=28")
 target_compile_options(vulkan_enc PRIVATE "-fvisibility=default" "-Wno-unused-parameter" "-Wno-missing-field-initializers" "-Werror" "-fstrict-aliasing")
 target_link_libraries(vulkan_enc PRIVATE gui log android-emu-shared _renderControl_enc OpenglCodecCommon_host cutils utils androidemu PRIVATE GoldfishAddressSpace_host qemupipe_host)
\ No newline at end of file
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index 33e4822..acfe9bf 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -568,6 +568,12 @@
             zx_handle_close(semInfo.eventHandle);
         }
 
+#ifdef VK_USE_PLATFORM_ANDROID_KHR
+        if (semInfo.syncFd >= 0) {
+            close(semInfo.syncFd);
+        }
+#endif
+
         info_VkSemaphore.erase(sem);
     }
 
@@ -1734,10 +1740,21 @@
         VkExternalMemoryHandleTypeFlagBits handleType,
         uint32_t handle,
         VkMemoryZirconHandlePropertiesFUCHSIA* pProperties) {
+        using llcpp::fuchsia::hardware::goldfish::MEMORY_PROPERTY_DEVICE_LOCAL;
+        using llcpp::fuchsia::hardware::goldfish::MEMORY_PROPERTY_HOST_VISIBLE;
+
         if (handleType != VK_EXTERNAL_MEMORY_HANDLE_TYPE_TEMP_ZIRCON_VMO_BIT_FUCHSIA) {
             return VK_ERROR_INITIALIZATION_FAILED;
         }
 
+        zx_info_handle_basic_t handleInfo;
+        zx_status_t status = zx::unowned_vmo(handle)->get_info(
+            ZX_INFO_HANDLE_BASIC, &handleInfo, sizeof(handleInfo), nullptr,
+            nullptr);
+        if (status != ZX_OK || handleInfo.type != ZX_OBJ_TYPE_VMO) {
+            return VK_ERROR_INVALID_EXTERNAL_HANDLE;
+        }
+
         AutoLock lock(mLock);
 
         auto deviceIt = info_VkDevice.find(device);
@@ -1748,11 +1765,44 @@
 
         auto& info = deviceIt->second;
 
-        // Device local memory type supported.
+        zx::vmo vmo_dup;
+        status =
+            zx::unowned_vmo(handle)->duplicate(ZX_RIGHT_SAME_RIGHTS, &vmo_dup);
+        if (status != ZX_OK) {
+            ALOGE("zx_handle_duplicate() error: %d", status);
+            return VK_ERROR_INITIALIZATION_FAILED;
+        }
+
+        uint32_t memoryProperty = 0u;
+
+        auto result = mControlDevice->GetBufferHandleInfo(std::move(vmo_dup));
+        if (!result.ok()) {
+            ALOGE(
+                "mControlDevice->GetBufferHandleInfo fatal error: epitaph: %d",
+                result.status());
+            return VK_ERROR_INITIALIZATION_FAILED;
+        }
+        if (result->result.is_response()) {
+            memoryProperty = result->result.response().info.memory_property();
+        } else if (result->result.err() == ZX_ERR_NOT_FOUND) {
+            // If an VMO is allocated while ColorBuffer/Buffer is not created,
+            // it must be a device-local buffer, since for host-visible buffers,
+            // ColorBuffer/Buffer is created at sysmem allocation time.
+            memoryProperty = MEMORY_PROPERTY_DEVICE_LOCAL;
+        } else {
+            ALOGE("mControlDevice->GetBufferHandleInfo error: %d",
+                  result->result.err());
+            return VK_ERROR_INITIALIZATION_FAILED;
+        }
+
         pProperties->memoryTypeBits = 0;
         for (uint32_t i = 0; i < info.memProps.memoryTypeCount; ++i) {
-            if (info.memProps.memoryTypes[i].propertyFlags &
-                VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) {
+            if (((memoryProperty & MEMORY_PROPERTY_DEVICE_LOCAL) &&
+                 (info.memProps.memoryTypes[i].propertyFlags &
+                  VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT)) ||
+                ((memoryProperty & MEMORY_PROPERTY_HOST_VISIBLE) &&
+                 (info.memProps.memoryTypes[i].propertyFlags &
+                  VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT))) {
                 pProperties->memoryTypeBits |= 1ull << i;
             }
         }
@@ -2974,24 +3024,26 @@
             vk_find_struct<VkMemoryDedicatedAllocateInfo>(pAllocateInfo);
 
         bool shouldPassThroughDedicatedAllocInfo =
-            !exportAllocateInfoPtr &&
-            !importAhbInfoPtr &&
-            !importBufferCollectionInfoPtr &&
-            !importVmoInfoPtr &&
+            !exportAllocateInfoPtr && !importAhbInfoPtr &&
+            !importBufferCollectionInfoPtr && !importVmoInfoPtr;
+
+#ifndef VK_USE_PLATFORM_FUCHSIA
+        shouldPassThroughDedicatedAllocInfo &=
             !isHostVisibleMemoryTypeIndexForGuest(
-                &mHostVisibleMemoryVirtInfo,
-                pAllocateInfo->memoryTypeIndex);
+                &mHostVisibleMemoryVirtInfo, pAllocateInfo->memoryTypeIndex);
 
         if (!exportAllocateInfoPtr &&
-            (importAhbInfoPtr || importBufferCollectionInfoPtr || importVmoInfoPtr) &&
+            (importAhbInfoPtr || importBufferCollectionInfoPtr ||
+             importVmoInfoPtr) &&
             dedicatedAllocInfoPtr &&
             isHostVisibleMemoryTypeIndexForGuest(
-                &mHostVisibleMemoryVirtInfo,
-                pAllocateInfo->memoryTypeIndex)) {
-            ALOGE("FATAL: It is not yet supported to import-allocate "
-                  "external memory that is both host visible and dedicated.");
+                &mHostVisibleMemoryVirtInfo, pAllocateInfo->memoryTypeIndex)) {
+            ALOGE(
+                "FATAL: It is not yet supported to import-allocate "
+                "external memory that is both host visible and dedicated.");
             abort();
         }
+#endif  // VK_USE_PLATFORM_FUCHSIA
 
         if (shouldPassThroughDedicatedAllocInfo &&
             dedicatedAllocInfoPtr) {
@@ -3289,78 +3341,96 @@
                     abort();
                 }
 
-                if (pImageCreateInfo) {
-                    llcpp::fuchsia::hardware::goldfish::ColorBufferFormatType
-                        format;
-                    switch (pImageCreateInfo->format) {
-                        case VK_FORMAT_B8G8R8A8_SINT:
-                        case VK_FORMAT_B8G8R8A8_UNORM:
-                        case VK_FORMAT_B8G8R8A8_SRGB:
-                        case VK_FORMAT_B8G8R8A8_SNORM:
-                        case VK_FORMAT_B8G8R8A8_SSCALED:
-                        case VK_FORMAT_B8G8R8A8_USCALED:
-                            format = llcpp::fuchsia::hardware::goldfish::
-                                ColorBufferFormatType::BGRA;
-                            break;
-                        case VK_FORMAT_R8G8B8A8_SINT:
-                        case VK_FORMAT_R8G8B8A8_UNORM:
-                        case VK_FORMAT_R8G8B8A8_SRGB:
-                        case VK_FORMAT_R8G8B8A8_SNORM:
-                        case VK_FORMAT_R8G8B8A8_SSCALED:
-                        case VK_FORMAT_R8G8B8A8_USCALED:
-                            format = llcpp::fuchsia::hardware::goldfish::
-                                ColorBufferFormatType::RGBA;
-                            break;
-                        case VK_FORMAT_R8_UNORM:
-                        case VK_FORMAT_R8_UINT:
-                        case VK_FORMAT_R8_USCALED:
-                        case VK_FORMAT_R8_SNORM:
-                        case VK_FORMAT_R8_SINT:
-                        case VK_FORMAT_R8_SSCALED:
-                        case VK_FORMAT_R8_SRGB:
-                            format = llcpp::fuchsia::hardware::goldfish::ColorBufferFormatType::
-                                LUMINANCE;
-                            break;
-                        case VK_FORMAT_R8G8_UNORM:
-                        case VK_FORMAT_R8G8_UINT:
-                        case VK_FORMAT_R8G8_USCALED:
-                        case VK_FORMAT_R8G8_SNORM:
-                        case VK_FORMAT_R8G8_SINT:
-                        case VK_FORMAT_R8G8_SSCALED:
-                        case VK_FORMAT_R8G8_SRGB:
-                            format = llcpp::fuchsia::hardware::goldfish::ColorBufferFormatType::RG;
-                            break;
-                        default:
-                            ALOGE("Unsupported format: %d",
-                                  pImageCreateInfo->format);
-                            abort();
-                    }
+                bool isHostVisible = isHostVisibleMemoryTypeIndexForGuest(
+                    &mHostVisibleMemoryVirtInfo,
+                    pAllocateInfo->memoryTypeIndex);
 
-                    auto createParams =
-                        llcpp::fuchsia::hardware::goldfish::CreateColorBuffer2Params::Builder(
-                            std::make_unique<llcpp::fuchsia::hardware::goldfish::
-                                                 CreateColorBuffer2Params::Frame>())
-                            .set_width(std::make_unique<uint32_t>(pImageCreateInfo->extent.width))
-                            .set_height(std::make_unique<uint32_t>(pImageCreateInfo->extent.height))
-                            .set_format(std::make_unique<
-                                        llcpp::fuchsia::hardware::goldfish::ColorBufferFormatType>(
-                                format))
-                            .set_memory_property(std::make_unique<uint32_t>(
-                                llcpp::fuchsia::hardware::goldfish::MEMORY_PROPERTY_DEVICE_LOCAL))
-                            .build();
+                // Only device-local images need to create color buffer; for
+                // host-visible images, the color buffer is already created when
+                // sysmem allocates memory.
+                if (!isHostVisible) {
+                    if (pImageCreateInfo) {
+                        llcpp::fuchsia::hardware::goldfish::
+                            ColorBufferFormatType format;
+                        switch (pImageCreateInfo->format) {
+                            case VK_FORMAT_B8G8R8A8_SINT:
+                            case VK_FORMAT_B8G8R8A8_UNORM:
+                            case VK_FORMAT_B8G8R8A8_SRGB:
+                            case VK_FORMAT_B8G8R8A8_SNORM:
+                            case VK_FORMAT_B8G8R8A8_SSCALED:
+                            case VK_FORMAT_B8G8R8A8_USCALED:
+                                format = llcpp::fuchsia::hardware::goldfish::
+                                    ColorBufferFormatType::BGRA;
+                                break;
+                            case VK_FORMAT_R8G8B8A8_SINT:
+                            case VK_FORMAT_R8G8B8A8_UNORM:
+                            case VK_FORMAT_R8G8B8A8_SRGB:
+                            case VK_FORMAT_R8G8B8A8_SNORM:
+                            case VK_FORMAT_R8G8B8A8_SSCALED:
+                            case VK_FORMAT_R8G8B8A8_USCALED:
+                                format = llcpp::fuchsia::hardware::goldfish::
+                                    ColorBufferFormatType::RGBA;
+                                break;
+                            case VK_FORMAT_R8_UNORM:
+                            case VK_FORMAT_R8_UINT:
+                            case VK_FORMAT_R8_USCALED:
+                            case VK_FORMAT_R8_SNORM:
+                            case VK_FORMAT_R8_SINT:
+                            case VK_FORMAT_R8_SSCALED:
+                            case VK_FORMAT_R8_SRGB:
+                                format = llcpp::fuchsia::hardware::goldfish::
+                                    ColorBufferFormatType::LUMINANCE;
+                                break;
+                            case VK_FORMAT_R8G8_UNORM:
+                            case VK_FORMAT_R8G8_UINT:
+                            case VK_FORMAT_R8G8_USCALED:
+                            case VK_FORMAT_R8G8_SNORM:
+                            case VK_FORMAT_R8G8_SINT:
+                            case VK_FORMAT_R8G8_SSCALED:
+                            case VK_FORMAT_R8G8_SRGB:
+                                format = llcpp::fuchsia::hardware::goldfish::
+                                    ColorBufferFormatType::RG;
+                                break;
+                            default:
+                                ALOGE("Unsupported format: %d",
+                                      pImageCreateInfo->format);
+                                abort();
+                        }
 
-                    auto result = mControlDevice->CreateColorBuffer2(std::move(vmo_copy),
-                                                                     std::move(createParams));
-                    if (!result.ok() || result.Unwrap()->res != ZX_OK) {
-                        if (result.ok() &&
-                            result.Unwrap()->res == ZX_ERR_ALREADY_EXISTS) {
-                            ALOGD("CreateColorBuffer: color buffer already "
-                                  "exists\n");
-                        } else {
-                            ALOGE("CreateColorBuffer failed: %d:%d",
-                                  result.status(),
-                                  GET_STATUS_SAFE(result, res));
-                            abort();
+                        auto createParams =
+                            llcpp::fuchsia::hardware::goldfish::
+                                CreateColorBuffer2Params::Builder(
+                                    std::make_unique<
+                                        llcpp::fuchsia::hardware::goldfish::
+                                            CreateColorBuffer2Params::Frame>())
+                                    .set_width(std::make_unique<uint32_t>(
+                                        pImageCreateInfo->extent.width))
+                                    .set_height(std::make_unique<uint32_t>(
+                                        pImageCreateInfo->extent.height))
+                                    .set_format(
+                                        std::make_unique<
+                                            llcpp::fuchsia::hardware::goldfish::
+                                                ColorBufferFormatType>(format))
+                                    .set_memory_property(
+                                        std::make_unique<uint32_t>(
+                                            llcpp::fuchsia::hardware::goldfish::
+                                                MEMORY_PROPERTY_DEVICE_LOCAL))
+                                    .build();
+
+                        auto result = mControlDevice->CreateColorBuffer2(
+                            std::move(vmo_copy), std::move(createParams));
+                        if (!result.ok() || result.Unwrap()->res != ZX_OK) {
+                            if (result.ok() &&
+                                result.Unwrap()->res == ZX_ERR_ALREADY_EXISTS) {
+                                ALOGD(
+                                    "CreateColorBuffer: color buffer already "
+                                    "exists\n");
+                            } else {
+                                ALOGE("CreateColorBuffer failed: %d:%d",
+                                      result.status(),
+                                      GET_STATUS_SAFE(result, res));
+                                abort();
+                            }
                         }
                     }
                 }
@@ -3657,9 +3727,13 @@
         uint32_t normalBits) {
         uint32_t res = 0;
         for (uint32_t i = 0; i < VK_MAX_MEMORY_TYPES; ++i) {
-            if (normalBits & (1 << i) &&
-                !isHostVisibleMemoryTypeIndexForGuest(
-                    &mHostVisibleMemoryVirtInfo, i)) {
+            bool shouldAcceptMemoryIndex = normalBits & (1 << i);
+#ifndef VK_USE_PLATFORM_FUCHSIA
+            shouldAcceptMemoryIndex &= !isHostVisibleMemoryTypeIndexForGuest(
+                &mHostVisibleMemoryVirtInfo, i);
+#endif  // VK_USE_PLATFORM_FUCHSIA
+
+            if (shouldAcceptMemoryIndex) {
                 res |= (1 << i);
             }
         }
@@ -5923,6 +5997,39 @@
             physicalDevice, pImageFormatInfo, pImageFormatProperties);
     }
 
+    void on_vkGetPhysicalDeviceExternalSemaphoreProperties(
+        void*,
+        VkPhysicalDevice,
+        const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
+        VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
+        (void)pExternalSemaphoreInfo;
+        (void)pExternalSemaphoreProperties;
+#ifdef VK_USE_PLATFORM_FUCHSIA
+        if (pExternalSemaphoreInfo->handleType ==
+            VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TEMP_ZIRCON_EVENT_BIT_FUCHSIA) {
+            pExternalSemaphoreProperties->compatibleHandleTypes |=
+                VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TEMP_ZIRCON_EVENT_BIT_FUCHSIA;
+            pExternalSemaphoreProperties->exportFromImportedHandleTypes |=
+                VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_TEMP_ZIRCON_EVENT_BIT_FUCHSIA;
+            pExternalSemaphoreProperties->externalSemaphoreFeatures |=
+                VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT |
+                VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT;
+        }
+#endif  // VK_USE_PLATFORM_FUCHSIA
+#ifdef VK_USE_PLATFORM_ANDROID_KHR
+        if (pExternalSemaphoreInfo->handleType ==
+            VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT) {
+            pExternalSemaphoreProperties->compatibleHandleTypes |=
+                VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
+            pExternalSemaphoreProperties->exportFromImportedHandleTypes |=
+                VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT;
+            pExternalSemaphoreProperties->externalSemaphoreFeatures |=
+                VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT |
+                VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT;
+        }
+#endif  // VK_USE_PLATFORM_ANDROID_KHR
+    }
+
     void registerEncoderCleanupCallback(const VkEncoder* encoder, void* object, CleanupCallback callback) {
         AutoLock lock(mLock);
         auto& callbacks = mEncoderCleanupCallbacks[encoder];
@@ -7110,6 +7217,26 @@
         pImageFormatProperties);
 }
 
+void ResourceTracker::on_vkGetPhysicalDeviceExternalSemaphoreProperties(
+    void* context,
+    VkPhysicalDevice physicalDevice,
+    const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
+    VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
+    mImpl->on_vkGetPhysicalDeviceExternalSemaphoreProperties(
+        context, physicalDevice, pExternalSemaphoreInfo,
+        pExternalSemaphoreProperties);
+}
+
+void ResourceTracker::on_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
+    void* context,
+    VkPhysicalDevice physicalDevice,
+    const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
+    VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
+    mImpl->on_vkGetPhysicalDeviceExternalSemaphoreProperties(
+        context, physicalDevice, pExternalSemaphoreInfo,
+        pExternalSemaphoreProperties);
+}
+
 void ResourceTracker::registerEncoderCleanupCallback(const VkEncoder* encoder, void* handle, ResourceTracker::CleanupCallback callback) {
     mImpl->registerEncoderCleanupCallback(encoder, handle, callback);
 }
@@ -7215,6 +7342,6 @@
     void ResourceTracker::transformImpl_##type##_tohost(type*, uint32_t) {} \
     void ResourceTracker::transformImpl_##type##_fromhost(type*, uint32_t) {}
 
-LIST_TRANSFORMED_TYPES(DEFINE_TRANSFORMED_TYPE_IMPL)
+LIST_TRIVIAL_TRANSFORMED_TYPES(DEFINE_TRANSFORMED_TYPE_IMPL)
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/ResourceTracker.h b/system/vulkan_enc/ResourceTracker.h
index ed683b2..2222c18 100644
--- a/system/vulkan_enc/ResourceTracker.h
+++ b/system/vulkan_enc/ResourceTracker.h
@@ -498,6 +498,18 @@
         const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
         VkImageFormatProperties2* pImageFormatProperties);
 
+    void on_vkGetPhysicalDeviceExternalSemaphoreProperties(
+        void* context,
+        VkPhysicalDevice physicalDevice,
+        const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
+        VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
+
+    void on_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
+        void* context,
+        VkPhysicalDevice physicalDevice,
+        const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
+        VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
+
     void registerEncoderCleanupCallback(const VkEncoder* encoder, void* handle, CleanupCallback callback);
     void unregisterEncoderCleanupCallback(const VkEncoder* encoder, void* handle);
     void onEncoderDeleted(const VkEncoder* encoder);
@@ -583,7 +595,7 @@
     void transformImpl_##type##_tohost(type*, uint32_t); \
     void transformImpl_##type##_fromhost(type*, uint32_t);
 
-    LIST_TRANSFORMED_TYPES(DEFINE_TRANSFORMED_TYPE_PROTOTYPE)
+    LIST_TRIVIAL_TRANSFORMED_TYPES(DEFINE_TRANSFORMED_TYPE_PROTOTYPE)
 
 private:
     class Impl;
diff --git a/system/vulkan_enc/VkEncoder.cpp b/system/vulkan_enc/VkEncoder.cpp
index 0fc5374..5f2f405 100644
--- a/system/vulkan_enc/VkEncoder.cpp
+++ b/system/vulkan_enc/VkEncoder.cpp
@@ -129,8 +129,8 @@
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
     reservedmarshal_VkInstanceCreateInfo(stream, (VkInstanceCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -138,15 +138,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_2;
-    *&cgen_var_2 = (uint64_t)((*pInstance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = (uint64_t)((*pInstance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_3;
-    stream->read((uint64_t*)&cgen_var_3, 8);
-    stream->handleMapping()->mapHandles_u64_VkInstance(&cgen_var_3, (VkInstance*)pInstance, 1);
+    uint64_t cgen_var_2;
+    stream->read((uint64_t*)&cgen_var_2, 8);
+    stream->handleMapping()->mapHandles_u64_VkInstance(&cgen_var_2, (VkInstance*)pInstance, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateInstance_VkResult_return = (VkResult)0;
     stream->read(&vkCreateInstance_VkResult_return, sizeof(VkResult));
@@ -188,7 +188,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_4;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -205,13 +205,13 @@
     memcpy(streamPtr, &opcode_vkDestroyInstance, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyInstance, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_5;
-    *&cgen_var_5 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_5, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_6 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_6, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -245,7 +245,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_7;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -271,13 +271,13 @@
     memcpy(streamPtr, &opcode_vkEnumeratePhysicalDevices, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkEnumeratePhysicalDevices, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_9;
-    *&cgen_var_9 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_9, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_10 = (uint64_t)(uintptr_t)pPhysicalDeviceCount;
-    memcpy((*streamPtrPtr), &cgen_var_10, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPhysicalDeviceCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPhysicalDeviceCount)
@@ -287,19 +287,22 @@
     }
     /* is handle, possibly out */;
     // WARNING PTR CHECK
-    uint64_t cgen_var_11 = (uint64_t)(uintptr_t)pPhysicalDevices;
-    memcpy((*streamPtrPtr), &cgen_var_11, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPhysicalDevices;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPhysicalDevices)
     {
         if ((*(pPhysicalDeviceCount)))
         {
-            uint8_t* cgen_var_12_ptr = (uint8_t*)(*streamPtrPtr);
-            for (uint32_t k = 0; k < (*(pPhysicalDeviceCount)); ++k)
+            uint8_t* cgen_var_2_0_ptr = (uint8_t*)(*streamPtrPtr);
+            if ((pPhysicalDeviceCount) != nullptr)
             {
-                uint64_t tmpval = (uint64_t)(pPhysicalDevices[k]);
-                memcpy(cgen_var_12_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                for (uint32_t k = 0; k < (*(pPhysicalDeviceCount)); ++k)
+                {
+                    uint64_t tmpval = (uint64_t)(pPhysicalDevices[k]);
+                    memcpy(cgen_var_2_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                }
             }
             *streamPtrPtr += 8 * (*(pPhysicalDeviceCount));
         }
@@ -328,10 +331,10 @@
         }
         if ((*(pPhysicalDeviceCount)))
         {
-            uint64_t* cgen_var_15;
-            stream->alloc((void**)&cgen_var_15, (*(pPhysicalDeviceCount)) * 8);
-            stream->read((uint64_t*)cgen_var_15, (*(pPhysicalDeviceCount)) * 8);
-            stream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_15, (VkPhysicalDevice*)pPhysicalDevices, (*(pPhysicalDeviceCount)));
+            uint64_t* cgen_var_4_0;
+            stream->alloc((void**)&cgen_var_4_0, (*(pPhysicalDeviceCount)) * 8);
+            stream->read((uint64_t*)cgen_var_4_0, (*(pPhysicalDeviceCount)) * 8);
+            stream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_4_0, (VkPhysicalDevice*)pPhysicalDevices, (*(pPhysicalDeviceCount)));
         }
     }
     stream->unsetHandleMapping();
@@ -362,7 +365,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_16;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceFeatures(sFeatureBits, (VkPhysicalDeviceFeatures*)(pFeatures), countPtr);
     }
@@ -374,9 +377,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceFeatures, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceFeatures, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_17;
-    *&cgen_var_17 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_17, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures), streamPtrPtr);
     unmarshal_VkPhysicalDeviceFeatures(stream, (VkPhysicalDeviceFeatures*)(pFeatures));
@@ -411,7 +414,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_18;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         count_VkFormatProperties(sFeatureBits, (VkFormatProperties*)(pFormatProperties), countPtr);
@@ -424,9 +427,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceFormatProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceFormatProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_19;
-    *&cgen_var_19 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_19, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -475,7 +478,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_20;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         *countPtr += sizeof(VkImageType);
@@ -492,9 +495,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceImageFormatProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceImageFormatProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_21;
-    *&cgen_var_21 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_21, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -539,7 +542,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_22;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceProperties(sFeatureBits, (VkPhysicalDeviceProperties*)(pProperties), countPtr);
     }
@@ -551,9 +554,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_23;
-    *&cgen_var_23 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_23, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties), streamPtrPtr);
     unmarshal_VkPhysicalDeviceProperties(stream, (VkPhysicalDeviceProperties*)(pProperties));
@@ -587,7 +590,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_24;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -599,9 +602,12 @@
         *countPtr += 8;
         if (pQueueFamilyProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            if ((pQueueFamilyPropertyCount) != nullptr)
             {
-                count_VkQueueFamilyProperties(sFeatureBits, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+                {
+                    count_VkQueueFamilyProperties(sFeatureBits, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i), countPtr);
+                }
             }
         }
     }
@@ -613,13 +619,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceQueueFamilyProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceQueueFamilyProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_25;
-    *&cgen_var_25 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_25, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_26 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_26, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pQueueFamilyPropertyCount)
@@ -628,8 +634,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_27 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
-    memcpy((*streamPtrPtr), &cgen_var_27, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pQueueFamilyProperties)
@@ -659,16 +665,22 @@
         {
             fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        if ((pQueueFamilyPropertyCount) != nullptr)
         {
-            unmarshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            {
+                unmarshal_VkQueueFamilyProperties(stream, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
+            }
         }
     }
-    if (pQueueFamilyProperties)
+    if ((pQueueFamilyPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        if (pQueueFamilyProperties)
         {
-            transform_fromhost_VkQueueFamilyProperties(sResourceTracker, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            {
+                transform_fromhost_VkQueueFamilyProperties(sResourceTracker, (VkQueueFamilyProperties*)(pQueueFamilyProperties + i));
+            }
         }
     }
     ++encodeCount;;
@@ -695,7 +707,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_30;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceMemoryProperties(sFeatureBits, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties), countPtr);
     }
@@ -707,9 +719,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceMemoryProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceMemoryProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_31;
-    *&cgen_var_31 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_31, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties), streamPtrPtr);
     unmarshal_VkPhysicalDeviceMemoryProperties(stream, (VkPhysicalDeviceMemoryProperties*)(pMemoryProperties));
@@ -745,7 +757,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_32;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t) + (local_pName ? strlen(local_pName) : 0);
     }
@@ -757,9 +769,9 @@
     memcpy(streamPtr, &opcode_vkGetInstanceProcAddr, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetInstanceProcAddr, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_33;
-    *&cgen_var_33 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_33, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     {
         uint32_t l = local_pName ? strlen(local_pName): 0;
@@ -799,7 +811,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_34;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t) + (local_pName ? strlen(local_pName) : 0);
     }
@@ -811,9 +823,9 @@
     memcpy(streamPtr, &opcode_vkGetDeviceProcAddr, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceProcAddr, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_35;
-    *&cgen_var_35 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_35, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     {
         uint32_t l = local_pName ? strlen(local_pName): 0;
@@ -875,7 +887,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_36;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDeviceCreateInfo(sFeatureBits, (VkDeviceCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -884,7 +896,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_37;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDevice = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -895,14 +907,14 @@
     memcpy(streamPtr, &opcode_vkCreateDevice, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDevice, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_38;
-    *&cgen_var_38 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_38, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDeviceCreateInfo(stream, (VkDeviceCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_39 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_39, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -910,15 +922,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_40;
-    *&cgen_var_40 = (uint64_t)((*pDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_40, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_41;
-    stream->read((uint64_t*)&cgen_var_41, 8);
-    stream->handleMapping()->mapHandles_u64_VkDevice(&cgen_var_41, (VkDevice*)pDevice, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDevice(&cgen_var_3, (VkDevice*)pDevice, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDevice_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDevice_VkResult_return, sizeof(VkResult));
@@ -961,7 +973,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_42;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -978,13 +990,13 @@
     memcpy(streamPtr, &opcode_vkDestroyDevice, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyDevice, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_43;
-    *&cgen_var_43 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_43, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_44 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_44, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -1042,9 +1054,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkExtensionProperties(sFeatureBits, (VkExtensionProperties*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkExtensionProperties(sFeatureBits, (VkExtensionProperties*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -1059,8 +1074,8 @@
     if (stream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_45 = (uint64_t)(uintptr_t)local_pLayerName;
-        memcpy((*streamPtrPtr), &cgen_var_45, 8);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pLayerName;
+        memcpy((*streamPtrPtr), &cgen_var_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
         *streamPtrPtr += 8;
         if (local_pLayerName)
@@ -1087,8 +1102,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_46 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_46, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -1097,8 +1112,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_47 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_47, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -1128,16 +1143,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkExtensionProperties(sResourceTracker, (VkExtensionProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkExtensionProperties(sResourceTracker, (VkExtensionProperties*)(pProperties + i));
+            }
         }
     }
     VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
@@ -1172,7 +1193,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_50;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         if (sFeatureBits & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
         {
@@ -1197,9 +1218,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkExtensionProperties(sFeatureBits, (VkExtensionProperties*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkExtensionProperties(sFeatureBits, (VkExtensionProperties*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -1211,15 +1235,15 @@
     memcpy(streamPtr, &opcode_vkEnumerateDeviceExtensionProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkEnumerateDeviceExtensionProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_51;
-    *&cgen_var_51 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_51, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     if (stream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_52 = (uint64_t)(uintptr_t)local_pLayerName;
-        memcpy((*streamPtrPtr), &cgen_var_52, 8);
+        uint64_t cgen_var_0_0 = (uint64_t)(uintptr_t)local_pLayerName;
+        memcpy((*streamPtrPtr), &cgen_var_0_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
         *streamPtrPtr += 8;
         if (local_pLayerName)
@@ -1246,8 +1270,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_53 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_53, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -1256,8 +1280,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_54 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_54, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -1287,16 +1311,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkExtensionProperties(stream, (VkExtensionProperties*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkExtensionProperties(sResourceTracker, (VkExtensionProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkExtensionProperties(sResourceTracker, (VkExtensionProperties*)(pProperties + i));
+            }
         }
     }
     VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
@@ -1334,9 +1364,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkLayerProperties(sFeatureBits, (VkLayerProperties*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkLayerProperties(sFeatureBits, (VkLayerProperties*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -1349,8 +1382,8 @@
     memcpy(streamPtr, &packetSize_vkEnumerateInstanceLayerProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
     // WARNING PTR CHECK
-    uint64_t cgen_var_57 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_57, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -1359,8 +1392,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_58 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_58, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -1390,16 +1423,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkLayerProperties(sResourceTracker, (VkLayerProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkLayerProperties(sResourceTracker, (VkLayerProperties*)(pProperties + i));
+            }
         }
     }
     VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
@@ -1430,7 +1469,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_61;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -1442,9 +1481,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkLayerProperties(sFeatureBits, (VkLayerProperties*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkLayerProperties(sFeatureBits, (VkLayerProperties*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -1456,13 +1498,13 @@
     memcpy(streamPtr, &opcode_vkEnumerateDeviceLayerProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkEnumerateDeviceLayerProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_62;
-    *&cgen_var_62 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_62, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_63 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_63, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -1471,8 +1513,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_64 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_64, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -1502,16 +1544,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkLayerProperties(stream, (VkLayerProperties*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkLayerProperties(sResourceTracker, (VkLayerProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkLayerProperties(sResourceTracker, (VkLayerProperties*)(pProperties + i));
+            }
         }
     }
     VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
@@ -1547,11 +1595,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_67;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
-        uint64_t cgen_var_68;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkGetDeviceQueue = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -1562,24 +1610,24 @@
     memcpy(streamPtr, &opcode_vkGetDeviceQueue, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceQueue, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_69;
-    *&cgen_var_69 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_69, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     memcpy(*streamPtrPtr, (uint32_t*)&local_queueIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     /* is handle, possibly out */;
-    uint64_t cgen_var_70;
-    *&cgen_var_70 = (uint64_t)((*pQueue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_70, 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = (uint64_t)((*pQueue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_71;
-    stream->read((uint64_t*)&cgen_var_71, 8);
-    stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_71, (VkQueue*)pQueue, 1);
+    uint64_t cgen_var_2;
+    stream->read((uint64_t*)&cgen_var_2, 8);
+    stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_2, (VkQueue*)pQueue, 1);
     stream->unsetHandleMapping();
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
@@ -1628,14 +1676,14 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_72;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
         {
             count_VkSubmitInfo(sFeatureBits, (VkSubmitInfo*)(local_pSubmits + i), countPtr);
         }
-        uint64_t cgen_var_73;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkQueueSubmit = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -1646,9 +1694,9 @@
     memcpy(streamPtr, &opcode_vkQueueSubmit, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueSubmit, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_74;
-    *&cgen_var_74 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_74, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_submitCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -1656,9 +1704,9 @@
     {
         reservedmarshal_VkSubmitInfo(stream, (VkSubmitInfo*)(local_pSubmits + i), streamPtrPtr);
     }
-    uint64_t cgen_var_75;
-    *&cgen_var_75 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_75, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
     stream->read(&vkQueueSubmit_VkResult_return, sizeof(VkResult));
@@ -1686,7 +1734,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_76;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkQueueWaitIdle = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -1697,9 +1745,9 @@
     memcpy(streamPtr, &opcode_vkQueueWaitIdle, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueWaitIdle, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_77;
-    *&cgen_var_77 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_77, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
     stream->read(&vkQueueWaitIdle_VkResult_return, sizeof(VkResult));
@@ -1727,7 +1775,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_78;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkDeviceWaitIdle = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -1738,9 +1786,9 @@
     memcpy(streamPtr, &opcode_vkDeviceWaitIdle, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDeviceWaitIdle, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_79;
-    *&cgen_var_79 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_79, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
     stream->read(&vkDeviceWaitIdle_VkResult_return, sizeof(VkResult));
@@ -1794,7 +1842,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_80;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkMemoryAllocateInfo(sFeatureBits, (VkMemoryAllocateInfo*)(local_pAllocateInfo), countPtr);
         // WARNING PTR CHECK
@@ -1803,7 +1851,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_81;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkAllocateMemory = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -1814,14 +1862,14 @@
     memcpy(streamPtr, &opcode_vkAllocateMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkAllocateMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_82;
-    *&cgen_var_82 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_82, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkMemoryAllocateInfo(stream, (VkMemoryAllocateInfo*)(local_pAllocateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_83 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_83, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -1829,15 +1877,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_84;
-    *&cgen_var_84 = (uint64_t)((*pMemory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_84, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pMemory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_85;
-    stream->read((uint64_t*)&cgen_var_85, 8);
-    stream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_85, (VkDeviceMemory*)pMemory, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_3, (VkDeviceMemory*)pMemory, 1);
     stream->unsetHandleMapping();
     VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
     stream->read(&vkAllocateMemory_VkResult_return, sizeof(VkResult));
@@ -1878,9 +1926,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_86;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_87;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -1897,17 +1945,17 @@
     memcpy(streamPtr, &opcode_vkFreeMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkFreeMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_88;
-    *&cgen_var_88 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_88, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_89;
-    *&cgen_var_89 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_89, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_90 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_90, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -1985,7 +2033,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_91;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
@@ -2001,9 +2049,9 @@
     memcpy(streamPtr, &opcode_vkFlushMappedMemoryRanges, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkFlushMappedMemoryRanges, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_92;
-    *&cgen_var_92 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_92, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_memoryRangeCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -2078,7 +2126,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_93;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((memoryRangeCount)); ++i)
@@ -2094,9 +2142,9 @@
     memcpy(streamPtr, &opcode_vkInvalidateMappedMemoryRanges, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkInvalidateMappedMemoryRanges, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_94;
-    *&cgen_var_94 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_94, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_memoryRangeCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -2154,9 +2202,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_95;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_96;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
     }
@@ -2168,13 +2216,13 @@
     memcpy(streamPtr, &opcode_vkGetDeviceMemoryCommitment, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceMemoryCommitment, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_97;
-    *&cgen_var_97 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_97, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_98;
-    *&cgen_var_98 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_98, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)pCommittedMemoryInBytes, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -2212,11 +2260,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_99;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_100;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_101;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
     }
@@ -2228,17 +2276,17 @@
     memcpy(streamPtr, &opcode_vkBindBufferMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkBindBufferMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_102;
-    *&cgen_var_102 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_102, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_103;
-    *&cgen_var_103 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_103, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_104;
-    *&cgen_var_104 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_104, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -2278,11 +2326,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_105;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_106;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_107;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
     }
@@ -2294,17 +2342,17 @@
     memcpy(streamPtr, &opcode_vkBindImageMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkBindImageMemory, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_108;
-    *&cgen_var_108 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_108, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_109;
-    *&cgen_var_109 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_109, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_110;
-    *&cgen_var_110 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_110, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_memoryOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -2338,9 +2386,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_111;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_112;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkMemoryRequirements(sFeatureBits, (VkMemoryRequirements*)(pMemoryRequirements), countPtr);
     }
@@ -2352,13 +2400,13 @@
     memcpy(streamPtr, &opcode_vkGetBufferMemoryRequirements, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetBufferMemoryRequirements, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_113;
-    *&cgen_var_113 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_113, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_114;
-    *&cgen_var_114 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_114, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements), streamPtrPtr);
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
@@ -2393,9 +2441,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_115;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_116;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkMemoryRequirements(sFeatureBits, (VkMemoryRequirements*)(pMemoryRequirements), countPtr);
     }
@@ -2407,13 +2455,13 @@
     memcpy(streamPtr, &opcode_vkGetImageMemoryRequirements, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetImageMemoryRequirements, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_117;
-    *&cgen_var_117 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_117, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_118;
-    *&cgen_var_118 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_118, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements), streamPtrPtr);
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
@@ -2449,9 +2497,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_119;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_120;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -2463,9 +2511,12 @@
         *countPtr += 8;
         if (pSparseMemoryRequirements)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            if ((pSparseMemoryRequirementCount) != nullptr)
             {
-                count_VkSparseImageMemoryRequirements(sFeatureBits, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+                {
+                    count_VkSparseImageMemoryRequirements(sFeatureBits, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i), countPtr);
+                }
             }
         }
     }
@@ -2477,17 +2528,17 @@
     memcpy(streamPtr, &opcode_vkGetImageSparseMemoryRequirements, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetImageSparseMemoryRequirements, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_121;
-    *&cgen_var_121 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_121, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_122;
-    *&cgen_var_122 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_122, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_123 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
-    memcpy((*streamPtrPtr), &cgen_var_123, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSparseMemoryRequirementCount)
@@ -2496,8 +2547,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_124 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
-    memcpy((*streamPtrPtr), &cgen_var_124, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSparseMemoryRequirements)
@@ -2527,16 +2578,22 @@
         {
             fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        if ((pSparseMemoryRequirementCount) != nullptr)
         {
-            unmarshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                unmarshal_VkSparseImageMemoryRequirements(stream, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
+            }
         }
     }
-    if (pSparseMemoryRequirements)
+    if ((pSparseMemoryRequirementCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        if (pSparseMemoryRequirements)
         {
-            transform_fromhost_VkSparseImageMemoryRequirements(sResourceTracker, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                transform_fromhost_VkSparseImageMemoryRequirements(sResourceTracker, (VkSparseImageMemoryRequirements*)(pSparseMemoryRequirements + i));
+            }
         }
     }
     ++encodeCount;;
@@ -2579,7 +2636,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_127;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         *countPtr += sizeof(VkImageType);
@@ -2596,9 +2653,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkSparseImageFormatProperties(sFeatureBits, (VkSparseImageFormatProperties*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkSparseImageFormatProperties(sFeatureBits, (VkSparseImageFormatProperties*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -2610,9 +2670,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSparseImageFormatProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSparseImageFormatProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_128;
-    *&cgen_var_128 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_128, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -2625,8 +2685,8 @@
     memcpy(*streamPtrPtr, (VkImageTiling*)&local_tiling, sizeof(VkImageTiling));
     *streamPtrPtr += sizeof(VkImageTiling);
     // WARNING PTR CHECK
-    uint64_t cgen_var_129 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_129, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -2635,8 +2695,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_130 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_130, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -2666,16 +2726,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkSparseImageFormatProperties(stream, (VkSparseImageFormatProperties*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkSparseImageFormatProperties(sResourceTracker, (VkSparseImageFormatProperties*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkSparseImageFormatProperties(sResourceTracker, (VkSparseImageFormatProperties*)(pProperties + i));
+            }
         }
     }
     ++encodeCount;;
@@ -2725,14 +2791,14 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_133;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
         {
             count_VkBindSparseInfo(sFeatureBits, (VkBindSparseInfo*)(local_pBindInfo + i), countPtr);
         }
-        uint64_t cgen_var_134;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkQueueBindSparse = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -2743,9 +2809,9 @@
     memcpy(streamPtr, &opcode_vkQueueBindSparse, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueBindSparse, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_135;
-    *&cgen_var_135 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_135, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -2753,9 +2819,9 @@
     {
         reservedmarshal_VkBindSparseInfo(stream, (VkBindSparseInfo*)(local_pBindInfo + i), streamPtrPtr);
     }
-    uint64_t cgen_var_136;
-    *&cgen_var_136 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_136, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
     stream->read(&vkQueueBindSparse_VkResult_return, sizeof(VkResult));
@@ -2809,7 +2875,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_137;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkFenceCreateInfo(sFeatureBits, (VkFenceCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -2818,7 +2884,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_138;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateFence = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -2829,14 +2895,14 @@
     memcpy(streamPtr, &opcode_vkCreateFence, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateFence, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_139;
-    *&cgen_var_139 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_139, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkFenceCreateInfo(stream, (VkFenceCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_140 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_140, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -2844,15 +2910,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_141;
-    *&cgen_var_141 = (uint64_t)((*pFence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_141, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pFence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_142;
-    stream->read((uint64_t*)&cgen_var_142, 8);
-    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_142, (VkFence*)pFence, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_3, (VkFence*)pFence, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateFence_VkResult_return = (VkResult)0;
     stream->read(&vkCreateFence_VkResult_return, sizeof(VkResult));
@@ -2896,9 +2962,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_143;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_144;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -2915,17 +2981,17 @@
     memcpy(streamPtr, &opcode_vkDestroyFence, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyFence, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_145;
-    *&cgen_var_145 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_145, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_146;
-    *&cgen_var_146 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_146, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_147 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_147, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -2964,7 +3030,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_148;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         if (((fenceCount)))
@@ -2980,19 +3046,19 @@
     memcpy(streamPtr, &opcode_vkResetFences, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkResetFences, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_150;
-    *&cgen_var_150 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_150, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_fenceCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     if (((fenceCount)))
     {
-        uint8_t* cgen_var_151_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((fenceCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkFence(local_pFences[k]);
-            memcpy(cgen_var_151_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((fenceCount));
     }
@@ -3025,9 +3091,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_152;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_153;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkGetFenceStatus = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3038,13 +3104,13 @@
     memcpy(streamPtr, &opcode_vkGetFenceStatus, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetFenceStatus, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_154;
-    *&cgen_var_154 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_154, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_155;
-    *&cgen_var_155 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_155, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
     stream->read(&vkGetFenceStatus_VkResult_return, sizeof(VkResult));
@@ -3085,7 +3151,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_156;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         if (((fenceCount)))
@@ -3103,19 +3169,19 @@
     memcpy(streamPtr, &opcode_vkWaitForFences, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkWaitForFences, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_158;
-    *&cgen_var_158 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_158, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_fenceCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     if (((fenceCount)))
     {
-        uint8_t* cgen_var_159_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((fenceCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkFence(local_pFences[k]);
-            memcpy(cgen_var_159_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((fenceCount));
     }
@@ -3175,7 +3241,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_160;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSemaphoreCreateInfo(sFeatureBits, (VkSemaphoreCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -3184,7 +3250,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_161;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateSemaphore = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3195,14 +3261,14 @@
     memcpy(streamPtr, &opcode_vkCreateSemaphore, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateSemaphore, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_162;
-    *&cgen_var_162 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_162, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSemaphoreCreateInfo(stream, (VkSemaphoreCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_163 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_163, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -3210,15 +3276,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_164;
-    *&cgen_var_164 = (uint64_t)((*pSemaphore));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_164, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSemaphore));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_165;
-    stream->read((uint64_t*)&cgen_var_165, 8);
-    stream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_165, (VkSemaphore*)pSemaphore, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_3, (VkSemaphore*)pSemaphore, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSemaphore_VkResult_return, sizeof(VkResult));
@@ -3262,9 +3328,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_166;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_167;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -3281,17 +3347,17 @@
     memcpy(streamPtr, &opcode_vkDestroySemaphore, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroySemaphore, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_168;
-    *&cgen_var_168 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_168, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_169;
-    *&cgen_var_169 = get_host_u64_VkSemaphore((*&local_semaphore));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_169, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSemaphore((*&local_semaphore));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_170 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_170, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -3349,7 +3415,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_171;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkEventCreateInfo(sFeatureBits, (VkEventCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -3358,7 +3424,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_172;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateEvent = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3369,14 +3435,14 @@
     memcpy(streamPtr, &opcode_vkCreateEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_173;
-    *&cgen_var_173 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_173, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkEventCreateInfo(stream, (VkEventCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_174 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_174, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -3384,15 +3450,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_175;
-    *&cgen_var_175 = (uint64_t)((*pEvent));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_175, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pEvent));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_176;
-    stream->read((uint64_t*)&cgen_var_176, 8);
-    stream->handleMapping()->mapHandles_u64_VkEvent(&cgen_var_176, (VkEvent*)pEvent, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkEvent(&cgen_var_3, (VkEvent*)pEvent, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateEvent_VkResult_return = (VkResult)0;
     stream->read(&vkCreateEvent_VkResult_return, sizeof(VkResult));
@@ -3436,9 +3502,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_177;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_178;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -3455,17 +3521,17 @@
     memcpy(streamPtr, &opcode_vkDestroyEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_179;
-    *&cgen_var_179 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_179, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_180;
-    *&cgen_var_180 = get_host_u64_VkEvent((*&local_event));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_180, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_181 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_181, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -3500,9 +3566,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_182;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_183;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkGetEventStatus = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3513,13 +3579,13 @@
     memcpy(streamPtr, &opcode_vkGetEventStatus, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetEventStatus, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_184;
-    *&cgen_var_184 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_184, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_185;
-    *&cgen_var_185 = get_host_u64_VkEvent((*&local_event));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_185, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
     stream->read(&vkGetEventStatus_VkResult_return, sizeof(VkResult));
@@ -3550,9 +3616,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_186;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_187;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkSetEvent = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3563,13 +3629,13 @@
     memcpy(streamPtr, &opcode_vkSetEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkSetEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_188;
-    *&cgen_var_188 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_188, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_189;
-    *&cgen_var_189 = get_host_u64_VkEvent((*&local_event));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_189, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkSetEvent_VkResult_return = (VkResult)0;
     stream->read(&vkSetEvent_VkResult_return, sizeof(VkResult));
@@ -3600,9 +3666,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_190;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_191;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkResetEvent = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3613,13 +3679,13 @@
     memcpy(streamPtr, &opcode_vkResetEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkResetEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_192;
-    *&cgen_var_192 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_192, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_193;
-    *&cgen_var_193 = get_host_u64_VkEvent((*&local_event));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_193, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkResetEvent_VkResult_return = (VkResult)0;
     stream->read(&vkResetEvent_VkResult_return, sizeof(VkResult));
@@ -3673,7 +3739,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_194;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkQueryPoolCreateInfo(sFeatureBits, (VkQueryPoolCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -3682,7 +3748,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_195;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateQueryPool = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3693,14 +3759,14 @@
     memcpy(streamPtr, &opcode_vkCreateQueryPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateQueryPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_196;
-    *&cgen_var_196 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_196, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkQueryPoolCreateInfo(stream, (VkQueryPoolCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_197 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_197, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -3708,15 +3774,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_198;
-    *&cgen_var_198 = (uint64_t)((*pQueryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_198, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pQueryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_199;
-    stream->read((uint64_t*)&cgen_var_199, 8);
-    stream->handleMapping()->mapHandles_u64_VkQueryPool(&cgen_var_199, (VkQueryPool*)pQueryPool, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkQueryPool(&cgen_var_3, (VkQueryPool*)pQueryPool, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
     stream->read(&vkCreateQueryPool_VkResult_return, sizeof(VkResult));
@@ -3760,9 +3826,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_200;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_201;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -3779,17 +3845,17 @@
     memcpy(streamPtr, &opcode_vkDestroyQueryPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyQueryPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_202;
-    *&cgen_var_202 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_202, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_203;
-    *&cgen_var_203 = get_host_u64_VkQueryPool((*&local_queryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_203, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_204 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_204, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -3840,9 +3906,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_205;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_206;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -3859,20 +3925,20 @@
     memcpy(streamPtr, &opcode_vkGetQueryPoolResults, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetQueryPoolResults, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_207;
-    *&cgen_var_207 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_207, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_208;
-    *&cgen_var_208 = get_host_u64_VkQueryPool((*&local_queryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_208, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstQuery, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     memcpy(*streamPtrPtr, (uint32_t*)&local_queryCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
-    uint64_t cgen_var_209 = (uint64_t)local_dataSize;
-    memcpy((*streamPtrPtr), &cgen_var_209, 8);
+    uint64_t cgen_var_2 = (uint64_t)local_dataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     memcpy(*streamPtrPtr, (void*)pData, ((dataSize)) * sizeof(uint8_t));
@@ -3934,7 +4000,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_210;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkBufferCreateInfo(sFeatureBits, (VkBufferCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -3943,7 +4009,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_211;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateBuffer = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -3954,14 +4020,14 @@
     memcpy(streamPtr, &opcode_vkCreateBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_212;
-    *&cgen_var_212 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_212, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkBufferCreateInfo(stream, (VkBufferCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_213 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_213, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -3969,15 +4035,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_214;
-    *&cgen_var_214 = (uint64_t)((*pBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_214, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_215;
-    stream->read((uint64_t*)&cgen_var_215, 8);
-    stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_215, (VkBuffer*)pBuffer, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_3, (VkBuffer*)pBuffer, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
     stream->read(&vkCreateBuffer_VkResult_return, sizeof(VkResult));
@@ -4021,9 +4087,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_216;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_217;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -4040,17 +4106,17 @@
     memcpy(streamPtr, &opcode_vkDestroyBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_218;
-    *&cgen_var_218 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_218, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_219;
-    *&cgen_var_219 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_219, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_220 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_220, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4108,7 +4174,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_221;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkBufferViewCreateInfo(sFeatureBits, (VkBufferViewCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -4117,7 +4183,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_222;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateBufferView = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -4128,14 +4194,14 @@
     memcpy(streamPtr, &opcode_vkCreateBufferView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateBufferView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_223;
-    *&cgen_var_223 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_223, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkBufferViewCreateInfo(stream, (VkBufferViewCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_224 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_224, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4143,15 +4209,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_225;
-    *&cgen_var_225 = (uint64_t)((*pView));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_225, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pView));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_226;
-    stream->read((uint64_t*)&cgen_var_226, 8);
-    stream->handleMapping()->mapHandles_u64_VkBufferView(&cgen_var_226, (VkBufferView*)pView, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkBufferView(&cgen_var_3, (VkBufferView*)pView, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
     stream->read(&vkCreateBufferView_VkResult_return, sizeof(VkResult));
@@ -4195,9 +4261,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_227;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_228;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -4214,17 +4280,17 @@
     memcpy(streamPtr, &opcode_vkDestroyBufferView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyBufferView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_229;
-    *&cgen_var_229 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_229, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_230;
-    *&cgen_var_230 = get_host_u64_VkBufferView((*&local_bufferView));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_230, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBufferView((*&local_bufferView));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_231 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_231, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4283,7 +4349,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_232;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImageCreateInfo(sFeatureBits, (VkImageCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -4292,7 +4358,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_233;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateImage = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -4303,14 +4369,14 @@
     memcpy(streamPtr, &opcode_vkCreateImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_234;
-    *&cgen_var_234 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_234, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageCreateInfo(stream, (VkImageCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_235 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_235, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4318,15 +4384,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_236;
-    *&cgen_var_236 = (uint64_t)((*pImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_236, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_237;
-    stream->read((uint64_t*)&cgen_var_237, 8);
-    stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_237, (VkImage*)pImage, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_3, (VkImage*)pImage, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateImage_VkResult_return = (VkResult)0;
     stream->read(&vkCreateImage_VkResult_return, sizeof(VkResult));
@@ -4370,9 +4436,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_238;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_239;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -4389,17 +4455,17 @@
     memcpy(streamPtr, &opcode_vkDestroyImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_240;
-    *&cgen_var_240 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_240, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_241;
-    *&cgen_var_241 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_241, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_242 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_242, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4447,9 +4513,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_243;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_244;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkImageSubresource(sFeatureBits, (VkImageSubresource*)(local_pSubresource), countPtr);
         count_VkSubresourceLayout(sFeatureBits, (VkSubresourceLayout*)(pLayout), countPtr);
@@ -4462,13 +4528,13 @@
     memcpy(streamPtr, &opcode_vkGetImageSubresourceLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetImageSubresourceLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_245;
-    *&cgen_var_245 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_245, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_246;
-    *&cgen_var_246 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_246, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageSubresource(stream, (VkImageSubresource*)(local_pSubresource), streamPtrPtr);
     reservedmarshal_VkSubresourceLayout(stream, (VkSubresourceLayout*)(pLayout), streamPtrPtr);
@@ -4526,7 +4592,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_247;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImageViewCreateInfo(sFeatureBits, (VkImageViewCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -4535,7 +4601,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_248;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateImageView = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -4546,14 +4612,14 @@
     memcpy(streamPtr, &opcode_vkCreateImageView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateImageView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_249;
-    *&cgen_var_249 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_249, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageViewCreateInfo(stream, (VkImageViewCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_250 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_250, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4561,15 +4627,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_251;
-    *&cgen_var_251 = (uint64_t)((*pView));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_251, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pView));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_252;
-    stream->read((uint64_t*)&cgen_var_252, 8);
-    stream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_252, (VkImageView*)pView, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_3, (VkImageView*)pView, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateImageView_VkResult_return = (VkResult)0;
     stream->read(&vkCreateImageView_VkResult_return, sizeof(VkResult));
@@ -4613,9 +4679,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_253;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_254;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -4632,17 +4698,17 @@
     memcpy(streamPtr, &opcode_vkDestroyImageView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyImageView, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_255;
-    *&cgen_var_255 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_255, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_256;
-    *&cgen_var_256 = get_host_u64_VkImageView((*&local_imageView));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_256, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImageView((*&local_imageView));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_257 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_257, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4700,7 +4766,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_258;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkShaderModuleCreateInfo(sFeatureBits, (VkShaderModuleCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -4709,7 +4775,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_259;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateShaderModule = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -4720,14 +4786,14 @@
     memcpy(streamPtr, &opcode_vkCreateShaderModule, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateShaderModule, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_260;
-    *&cgen_var_260 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_260, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkShaderModuleCreateInfo(stream, (VkShaderModuleCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_261 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_261, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4735,15 +4801,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_262;
-    *&cgen_var_262 = (uint64_t)((*pShaderModule));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_262, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pShaderModule));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_263;
-    stream->read((uint64_t*)&cgen_var_263, 8);
-    stream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_263, (VkShaderModule*)pShaderModule, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_3, (VkShaderModule*)pShaderModule, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
     stream->read(&vkCreateShaderModule_VkResult_return, sizeof(VkResult));
@@ -4787,9 +4853,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_264;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_265;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -4806,17 +4872,17 @@
     memcpy(streamPtr, &opcode_vkDestroyShaderModule, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyShaderModule, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_266;
-    *&cgen_var_266 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_266, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_267;
-    *&cgen_var_267 = get_host_u64_VkShaderModule((*&local_shaderModule));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_267, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkShaderModule((*&local_shaderModule));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_268 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_268, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4874,7 +4940,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_269;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPipelineCacheCreateInfo(sFeatureBits, (VkPipelineCacheCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -4883,7 +4949,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_270;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreatePipelineCache = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -4894,14 +4960,14 @@
     memcpy(streamPtr, &opcode_vkCreatePipelineCache, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreatePipelineCache, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_271;
-    *&cgen_var_271 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_271, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPipelineCacheCreateInfo(stream, (VkPipelineCacheCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_272 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_272, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -4909,15 +4975,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_273;
-    *&cgen_var_273 = (uint64_t)((*pPipelineCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_273, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pPipelineCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_274;
-    stream->read((uint64_t*)&cgen_var_274, 8);
-    stream->handleMapping()->mapHandles_u64_VkPipelineCache(&cgen_var_274, (VkPipelineCache*)pPipelineCache, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkPipelineCache(&cgen_var_3, (VkPipelineCache*)pPipelineCache, 1);
     stream->unsetHandleMapping();
     VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
     stream->read(&vkCreatePipelineCache_VkResult_return, sizeof(VkResult));
@@ -4961,9 +5027,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_275;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_276;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -4980,17 +5046,17 @@
     memcpy(streamPtr, &opcode_vkDestroyPipelineCache, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyPipelineCache, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_277;
-    *&cgen_var_277 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_277, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_278;
-    *&cgen_var_278 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_278, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_279 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_279, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5027,9 +5093,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_280;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_281;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -5041,7 +5107,10 @@
         *countPtr += 8;
         if (pData)
         {
-            *countPtr += (*(pDataSize)) * sizeof(uint8_t);
+            if ((pDataSize) != nullptr)
+            {
+                *countPtr += (*(pDataSize)) * sizeof(uint8_t);
+            }
         }
     }
     uint32_t packetSize_vkGetPipelineCacheData = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -5052,29 +5121,29 @@
     memcpy(streamPtr, &opcode_vkGetPipelineCacheData, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPipelineCacheData, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_282;
-    *&cgen_var_282 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_282, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_283;
-    *&cgen_var_283 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_283, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_284 = (uint64_t)(uintptr_t)pDataSize;
-    memcpy((*streamPtrPtr), &cgen_var_284, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pDataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pDataSize)
     {
-        uint64_t cgen_var_285 = (uint64_t)(*pDataSize);
-        memcpy((*streamPtrPtr), &cgen_var_285, 8);
+        uint64_t cgen_var_2_0 = (uint64_t)(*pDataSize);
+        memcpy((*streamPtrPtr), &cgen_var_2_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
         *streamPtrPtr += 8;
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_286 = (uint64_t)(uintptr_t)pData;
-    memcpy((*streamPtrPtr), &cgen_var_286, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pData;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pData)
@@ -5140,9 +5209,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_290;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_291;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         if (((srcCacheCount)))
@@ -5158,23 +5227,23 @@
     memcpy(streamPtr, &opcode_vkMergePipelineCaches, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkMergePipelineCaches, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_293;
-    *&cgen_var_293 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_293, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_294;
-    *&cgen_var_294 = get_host_u64_VkPipelineCache((*&local_dstCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_294, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineCache((*&local_dstCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     if (((srcCacheCount)))
     {
-        uint8_t* cgen_var_295_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_2_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((srcCacheCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkPipelineCache(local_pSrcCaches[k]);
-            memcpy(cgen_var_295_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_2_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((srcCacheCount));
     }
@@ -5242,9 +5311,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_296;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_297;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
@@ -5270,13 +5339,13 @@
     memcpy(streamPtr, &opcode_vkCreateGraphicsPipelines, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateGraphicsPipelines, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_299;
-    *&cgen_var_299 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_299, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_300;
-    *&cgen_var_300 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_300, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_createInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -5285,8 +5354,8 @@
         reservedmarshal_VkGraphicsPipelineCreateInfo(stream, (VkGraphicsPipelineCreateInfo*)(local_pCreateInfos + i), streamPtrPtr);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_301 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_301, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5296,11 +5365,11 @@
     /* is handle, possibly out */;
     if (((createInfoCount)))
     {
-        uint8_t* cgen_var_302_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_3_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((createInfoCount)); ++k)
         {
             uint64_t tmpval = (uint64_t)(pPipelines[k]);
-            memcpy(cgen_var_302_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_3_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((createInfoCount));
     }
@@ -5308,10 +5377,10 @@
     stream->setHandleMapping(sResourceTracker->createMapping());
     if (((createInfoCount)))
     {
-        uint64_t* cgen_var_303;
-        stream->alloc((void**)&cgen_var_303, ((createInfoCount)) * 8);
-        stream->read((uint64_t*)cgen_var_303, ((createInfoCount)) * 8);
-        stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_303, (VkPipeline*)pPipelines, ((createInfoCount)));
+        uint64_t* cgen_var_4;
+        stream->alloc((void**)&cgen_var_4, ((createInfoCount)) * 8);
+        stream->read((uint64_t*)cgen_var_4, ((createInfoCount)) * 8);
+        stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_4, (VkPipeline*)pPipelines, ((createInfoCount)));
     }
     stream->unsetHandleMapping();
     VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
@@ -5378,9 +5447,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_304;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_305;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
@@ -5406,13 +5475,13 @@
     memcpy(streamPtr, &opcode_vkCreateComputePipelines, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateComputePipelines, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_307;
-    *&cgen_var_307 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_307, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_308;
-    *&cgen_var_308 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_308, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_createInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -5421,8 +5490,8 @@
         reservedmarshal_VkComputePipelineCreateInfo(stream, (VkComputePipelineCreateInfo*)(local_pCreateInfos + i), streamPtrPtr);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_309 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_309, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5432,11 +5501,11 @@
     /* is handle, possibly out */;
     if (((createInfoCount)))
     {
-        uint8_t* cgen_var_310_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_3_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((createInfoCount)); ++k)
         {
             uint64_t tmpval = (uint64_t)(pPipelines[k]);
-            memcpy(cgen_var_310_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_3_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((createInfoCount));
     }
@@ -5444,10 +5513,10 @@
     stream->setHandleMapping(sResourceTracker->createMapping());
     if (((createInfoCount)))
     {
-        uint64_t* cgen_var_311;
-        stream->alloc((void**)&cgen_var_311, ((createInfoCount)) * 8);
-        stream->read((uint64_t*)cgen_var_311, ((createInfoCount)) * 8);
-        stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_311, (VkPipeline*)pPipelines, ((createInfoCount)));
+        uint64_t* cgen_var_4;
+        stream->alloc((void**)&cgen_var_4, ((createInfoCount)) * 8);
+        stream->read((uint64_t*)cgen_var_4, ((createInfoCount)) * 8);
+        stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_4, (VkPipeline*)pPipelines, ((createInfoCount)));
     }
     stream->unsetHandleMapping();
     VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
@@ -5492,9 +5561,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_312;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_313;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -5511,17 +5580,17 @@
     memcpy(streamPtr, &opcode_vkDestroyPipeline, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyPipeline, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_314;
-    *&cgen_var_314 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_314, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_315;
-    *&cgen_var_315 = get_host_u64_VkPipeline((*&local_pipeline));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_315, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_316 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_316, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5579,7 +5648,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_317;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPipelineLayoutCreateInfo(sFeatureBits, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -5588,7 +5657,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_318;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreatePipelineLayout = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -5599,14 +5668,14 @@
     memcpy(streamPtr, &opcode_vkCreatePipelineLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreatePipelineLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_319;
-    *&cgen_var_319 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_319, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPipelineLayoutCreateInfo(stream, (VkPipelineLayoutCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_320 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_320, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5614,15 +5683,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_321;
-    *&cgen_var_321 = (uint64_t)((*pPipelineLayout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_321, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pPipelineLayout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_322;
-    stream->read((uint64_t*)&cgen_var_322, 8);
-    stream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_322, (VkPipelineLayout*)pPipelineLayout, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_3, (VkPipelineLayout*)pPipelineLayout, 1);
     stream->unsetHandleMapping();
     VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
     stream->read(&vkCreatePipelineLayout_VkResult_return, sizeof(VkResult));
@@ -5666,9 +5735,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_323;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_324;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -5685,17 +5754,17 @@
     memcpy(streamPtr, &opcode_vkDestroyPipelineLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyPipelineLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_325;
-    *&cgen_var_325 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_325, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_326;
-    *&cgen_var_326 = get_host_u64_VkPipelineLayout((*&local_pipelineLayout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_326, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineLayout((*&local_pipelineLayout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_327 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_327, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5753,7 +5822,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_328;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSamplerCreateInfo(sFeatureBits, (VkSamplerCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -5762,7 +5831,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_329;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateSampler = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -5773,14 +5842,14 @@
     memcpy(streamPtr, &opcode_vkCreateSampler, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateSampler, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_330;
-    *&cgen_var_330 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_330, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSamplerCreateInfo(stream, (VkSamplerCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_331 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_331, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5788,15 +5857,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_332;
-    *&cgen_var_332 = (uint64_t)((*pSampler));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_332, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSampler));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_333;
-    stream->read((uint64_t*)&cgen_var_333, 8);
-    stream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_333, (VkSampler*)pSampler, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_3, (VkSampler*)pSampler, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateSampler_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSampler_VkResult_return, sizeof(VkResult));
@@ -5840,9 +5909,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_334;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_335;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -5859,17 +5928,17 @@
     memcpy(streamPtr, &opcode_vkDestroySampler, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroySampler, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_336;
-    *&cgen_var_336 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_336, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_337;
-    *&cgen_var_337 = get_host_u64_VkSampler((*&local_sampler));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_337, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSampler((*&local_sampler));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_338 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_338, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5927,7 +5996,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_339;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDescriptorSetLayoutCreateInfo(sFeatureBits, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -5936,7 +6005,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_340;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDescriptorSetLayout = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -5947,14 +6016,14 @@
     memcpy(streamPtr, &opcode_vkCreateDescriptorSetLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDescriptorSetLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_341;
-    *&cgen_var_341 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_341, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_342 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_342, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -5962,15 +6031,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_343;
-    *&cgen_var_343 = (uint64_t)((*pSetLayout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_343, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSetLayout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_344;
-    stream->read((uint64_t*)&cgen_var_344, 8);
-    stream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_344, (VkDescriptorSetLayout*)pSetLayout, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_3, (VkDescriptorSetLayout*)pSetLayout, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorSetLayout_VkResult_return, sizeof(VkResult));
@@ -6014,9 +6083,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_345;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_346;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -6033,17 +6102,17 @@
     memcpy(streamPtr, &opcode_vkDestroyDescriptorSetLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyDescriptorSetLayout, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_347;
-    *&cgen_var_347 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_347, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_348;
-    *&cgen_var_348 = get_host_u64_VkDescriptorSetLayout((*&local_descriptorSetLayout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_348, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorSetLayout((*&local_descriptorSetLayout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_349 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_349, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -6101,7 +6170,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_350;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDescriptorPoolCreateInfo(sFeatureBits, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -6110,7 +6179,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_351;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDescriptorPool = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -6121,14 +6190,14 @@
     memcpy(streamPtr, &opcode_vkCreateDescriptorPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDescriptorPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_352;
-    *&cgen_var_352 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_352, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDescriptorPoolCreateInfo(stream, (VkDescriptorPoolCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_353 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_353, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -6136,15 +6205,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_354;
-    *&cgen_var_354 = (uint64_t)((*pDescriptorPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_354, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pDescriptorPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_355;
-    stream->read((uint64_t*)&cgen_var_355, 8);
-    stream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_355, (VkDescriptorPool*)pDescriptorPool, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_3, (VkDescriptorPool*)pDescriptorPool, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorPool_VkResult_return, sizeof(VkResult));
@@ -6188,9 +6257,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_356;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_357;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -6207,17 +6276,17 @@
     memcpy(streamPtr, &opcode_vkDestroyDescriptorPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyDescriptorPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_358;
-    *&cgen_var_358 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_358, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_359;
-    *&cgen_var_359 = get_host_u64_VkDescriptorPool((*&local_descriptorPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_359, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorPool((*&local_descriptorPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_360 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_360, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -6255,9 +6324,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_361;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_362;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDescriptorPoolResetFlags);
     }
@@ -6269,13 +6338,13 @@
     memcpy(streamPtr, &opcode_vkResetDescriptorPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkResetDescriptorPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_363;
-    *&cgen_var_363 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_363, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_364;
-    *&cgen_var_364 = get_host_u64_VkDescriptorPool((*&local_descriptorPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_364, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorPool((*&local_descriptorPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDescriptorPoolResetFlags*)&local_flags, sizeof(VkDescriptorPoolResetFlags));
     *streamPtrPtr += sizeof(VkDescriptorPoolResetFlags);
@@ -6318,7 +6387,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_365;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDescriptorSetAllocateInfo(sFeatureBits, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo), countPtr);
         if (pAllocateInfo->descriptorSetCount)
@@ -6334,19 +6403,19 @@
     memcpy(streamPtr, &opcode_vkAllocateDescriptorSets, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkAllocateDescriptorSets, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_367;
-    *&cgen_var_367 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_367, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDescriptorSetAllocateInfo(stream, (VkDescriptorSetAllocateInfo*)(local_pAllocateInfo), streamPtrPtr);
     /* is handle, possibly out */;
     if (pAllocateInfo->descriptorSetCount)
     {
-        uint8_t* cgen_var_368_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < pAllocateInfo->descriptorSetCount; ++k)
         {
             uint64_t tmpval = (uint64_t)(pDescriptorSets[k]);
-            memcpy(cgen_var_368_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * pAllocateInfo->descriptorSetCount;
     }
@@ -6354,10 +6423,10 @@
     stream->setHandleMapping(sResourceTracker->createMapping());
     if (pAllocateInfo->descriptorSetCount)
     {
-        uint64_t* cgen_var_369;
-        stream->alloc((void**)&cgen_var_369, pAllocateInfo->descriptorSetCount * 8);
-        stream->read((uint64_t*)cgen_var_369, pAllocateInfo->descriptorSetCount * 8);
-        stream->handleMapping()->mapHandles_u64_VkDescriptorSet(cgen_var_369, (VkDescriptorSet*)pDescriptorSets, pAllocateInfo->descriptorSetCount);
+        uint64_t* cgen_var_2;
+        stream->alloc((void**)&cgen_var_2, pAllocateInfo->descriptorSetCount * 8);
+        stream->read((uint64_t*)cgen_var_2, pAllocateInfo->descriptorSetCount * 8);
+        stream->handleMapping()->mapHandles_u64_VkDescriptorSet(cgen_var_2, (VkDescriptorSet*)pDescriptorSets, pAllocateInfo->descriptorSetCount);
     }
     stream->unsetHandleMapping();
     VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
@@ -6396,9 +6465,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_370;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_371;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         // WARNING PTR CHECK
@@ -6419,30 +6488,30 @@
     memcpy(streamPtr, &opcode_vkFreeDescriptorSets, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkFreeDescriptorSets, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_373;
-    *&cgen_var_373 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_373, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_374;
-    *&cgen_var_374 = get_host_u64_VkDescriptorPool((*&local_descriptorPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_374, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorPool((*&local_descriptorPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_descriptorSetCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_375 = (uint64_t)(uintptr_t)local_pDescriptorSets;
-    memcpy((*streamPtrPtr), &cgen_var_375, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pDescriptorSets;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pDescriptorSets)
     {
         if (((descriptorSetCount)))
         {
-            uint8_t* cgen_var_376_ptr = (uint8_t*)(*streamPtrPtr);
+            uint8_t* cgen_var_2_0_ptr = (uint8_t*)(*streamPtrPtr);
             for (uint32_t k = 0; k < ((descriptorSetCount)); ++k)
             {
                 uint64_t tmpval = get_host_u64_VkDescriptorSet(local_pDescriptorSets[k]);
-                memcpy(cgen_var_376_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                memcpy(cgen_var_2_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
             }
             *streamPtrPtr += 8 * ((descriptorSetCount));
         }
@@ -6519,7 +6588,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_377;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((descriptorWriteCount)); ++i)
@@ -6540,9 +6609,9 @@
     memcpy(streamPtr, &opcode_vkUpdateDescriptorSets, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkUpdateDescriptorSets, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_378;
-    *&cgen_var_378 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_378, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_descriptorWriteCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -6606,7 +6675,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_379;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkFramebufferCreateInfo(sFeatureBits, (VkFramebufferCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -6615,7 +6684,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_380;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateFramebuffer = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -6626,14 +6695,14 @@
     memcpy(streamPtr, &opcode_vkCreateFramebuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateFramebuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_381;
-    *&cgen_var_381 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_381, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkFramebufferCreateInfo(stream, (VkFramebufferCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_382 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_382, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -6641,15 +6710,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_383;
-    *&cgen_var_383 = (uint64_t)((*pFramebuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_383, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pFramebuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_384;
-    stream->read((uint64_t*)&cgen_var_384, 8);
-    stream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_384, (VkFramebuffer*)pFramebuffer, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_3, (VkFramebuffer*)pFramebuffer, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
     stream->read(&vkCreateFramebuffer_VkResult_return, sizeof(VkResult));
@@ -6693,9 +6762,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_385;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_386;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -6712,17 +6781,17 @@
     memcpy(streamPtr, &opcode_vkDestroyFramebuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyFramebuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_387;
-    *&cgen_var_387 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_387, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_388;
-    *&cgen_var_388 = get_host_u64_VkFramebuffer((*&local_framebuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_388, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFramebuffer((*&local_framebuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_389 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_389, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -6780,7 +6849,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_390;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkRenderPassCreateInfo(sFeatureBits, (VkRenderPassCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -6789,7 +6858,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_391;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateRenderPass = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -6800,14 +6869,14 @@
     memcpy(streamPtr, &opcode_vkCreateRenderPass, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateRenderPass, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_392;
-    *&cgen_var_392 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_392, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkRenderPassCreateInfo(stream, (VkRenderPassCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_393 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_393, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -6815,15 +6884,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_394;
-    *&cgen_var_394 = (uint64_t)((*pRenderPass));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_394, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pRenderPass));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_395;
-    stream->read((uint64_t*)&cgen_var_395, 8);
-    stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_395, (VkRenderPass*)pRenderPass, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_3, (VkRenderPass*)pRenderPass, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
     stream->read(&vkCreateRenderPass_VkResult_return, sizeof(VkResult));
@@ -6867,9 +6936,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_396;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_397;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -6886,17 +6955,17 @@
     memcpy(streamPtr, &opcode_vkDestroyRenderPass, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyRenderPass, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_398;
-    *&cgen_var_398 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_398, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_399;
-    *&cgen_var_399 = get_host_u64_VkRenderPass((*&local_renderPass));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_399, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkRenderPass((*&local_renderPass));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_400 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_400, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -6932,9 +7001,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_401;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_402;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkExtent2D(sFeatureBits, (VkExtent2D*)(pGranularity), countPtr);
     }
@@ -6946,13 +7015,13 @@
     memcpy(streamPtr, &opcode_vkGetRenderAreaGranularity, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetRenderAreaGranularity, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_403;
-    *&cgen_var_403 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_403, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_404;
-    *&cgen_var_404 = get_host_u64_VkRenderPass((*&local_renderPass));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_404, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkRenderPass((*&local_renderPass));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity), streamPtrPtr);
     unmarshal_VkExtent2D(stream, (VkExtent2D*)(pGranularity));
@@ -7009,7 +7078,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_405;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkCommandPoolCreateInfo(sFeatureBits, (VkCommandPoolCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -7018,7 +7087,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_406;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateCommandPool = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -7029,14 +7098,14 @@
     memcpy(streamPtr, &opcode_vkCreateCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_407;
-    *&cgen_var_407 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_407, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkCommandPoolCreateInfo(stream, (VkCommandPoolCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_408 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_408, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -7044,15 +7113,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_409;
-    *&cgen_var_409 = (uint64_t)((*pCommandPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_409, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pCommandPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_410;
-    stream->read((uint64_t*)&cgen_var_410, 8);
-    stream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_410, (VkCommandPool*)pCommandPool, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_3, (VkCommandPool*)pCommandPool, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
     stream->read(&vkCreateCommandPool_VkResult_return, sizeof(VkResult));
@@ -7096,9 +7165,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_411;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_412;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -7115,17 +7184,17 @@
     memcpy(streamPtr, &opcode_vkDestroyCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_413;
-    *&cgen_var_413 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_413, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_414;
-    *&cgen_var_414 = get_host_u64_VkCommandPool((*&local_commandPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_414, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkCommandPool((*&local_commandPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_415 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_415, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -7163,9 +7232,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_416;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_417;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkCommandPoolResetFlags);
     }
@@ -7177,13 +7246,13 @@
     memcpy(streamPtr, &opcode_vkResetCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkResetCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_418;
-    *&cgen_var_418 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_418, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_419;
-    *&cgen_var_419 = get_host_u64_VkCommandPool((*&local_commandPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_419, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkCommandPool((*&local_commandPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkCommandPoolResetFlags*)&local_flags, sizeof(VkCommandPoolResetFlags));
     *streamPtrPtr += sizeof(VkCommandPoolResetFlags);
@@ -7226,7 +7295,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_420;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkCommandBufferAllocateInfo(sFeatureBits, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo), countPtr);
         if (pAllocateInfo->commandBufferCount)
@@ -7242,19 +7311,19 @@
     memcpy(streamPtr, &opcode_vkAllocateCommandBuffers, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkAllocateCommandBuffers, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_422;
-    *&cgen_var_422 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_422, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkCommandBufferAllocateInfo(stream, (VkCommandBufferAllocateInfo*)(local_pAllocateInfo), streamPtrPtr);
     /* is handle, possibly out */;
     if (pAllocateInfo->commandBufferCount)
     {
-        uint8_t* cgen_var_423_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < pAllocateInfo->commandBufferCount; ++k)
         {
             uint64_t tmpval = (uint64_t)(pCommandBuffers[k]);
-            memcpy(cgen_var_423_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * pAllocateInfo->commandBufferCount;
     }
@@ -7262,10 +7331,10 @@
     stream->setHandleMapping(sResourceTracker->createMapping());
     if (pAllocateInfo->commandBufferCount)
     {
-        uint64_t* cgen_var_424;
-        stream->alloc((void**)&cgen_var_424, pAllocateInfo->commandBufferCount * 8);
-        stream->read((uint64_t*)cgen_var_424, pAllocateInfo->commandBufferCount * 8);
-        stream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_424, (VkCommandBuffer*)pCommandBuffers, pAllocateInfo->commandBufferCount);
+        uint64_t* cgen_var_2;
+        stream->alloc((void**)&cgen_var_2, pAllocateInfo->commandBufferCount * 8);
+        stream->read((uint64_t*)cgen_var_2, pAllocateInfo->commandBufferCount * 8);
+        stream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_2, (VkCommandBuffer*)pCommandBuffers, pAllocateInfo->commandBufferCount);
     }
     stream->unsetHandleMapping();
     VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
@@ -7304,9 +7373,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_425;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_426;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         // WARNING PTR CHECK
@@ -7327,30 +7396,30 @@
     memcpy(streamPtr, &opcode_vkFreeCommandBuffers, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkFreeCommandBuffers, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_428;
-    *&cgen_var_428 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_428, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_429;
-    *&cgen_var_429 = get_host_u64_VkCommandPool((*&local_commandPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_429, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkCommandPool((*&local_commandPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_commandBufferCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_430 = (uint64_t)(uintptr_t)local_pCommandBuffers;
-    memcpy((*streamPtrPtr), &cgen_var_430, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pCommandBuffers;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pCommandBuffers)
     {
         if (((commandBufferCount)))
         {
-            uint8_t* cgen_var_431_ptr = (uint8_t*)(*streamPtrPtr);
+            uint8_t* cgen_var_2_0_ptr = (uint8_t*)(*streamPtrPtr);
             for (uint32_t k = 0; k < ((commandBufferCount)); ++k)
             {
                 uint64_t tmpval = get_host_u64_VkCommandBuffer(local_pCommandBuffers[k]);
-                memcpy(cgen_var_431_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                memcpy(cgen_var_2_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
             }
             *streamPtrPtr += 8 * ((commandBufferCount));
         }
@@ -7395,7 +7464,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_432;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkCommandBufferBeginInfo(sFeatureBits, (VkCommandBufferBeginInfo*)(local_pBeginInfo), countPtr);
     }
@@ -7408,9 +7477,9 @@
     memcpy(streamPtr, &packetSize_vkBeginCommandBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_433;
-        *&cgen_var_433 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_433, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo), streamPtrPtr);
@@ -7440,7 +7509,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_434;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkEndCommandBuffer = 4 + 4 + count;
@@ -7452,9 +7521,9 @@
     memcpy(streamPtr, &packetSize_vkEndCommandBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_435;
-        *&cgen_var_435 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_435, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
@@ -7486,7 +7555,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_436;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkCommandBufferResetFlags);
     }
@@ -7499,9 +7568,9 @@
     memcpy(streamPtr, &packetSize_vkResetCommandBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_437;
-        *&cgen_var_437 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_437, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags));
@@ -7538,10 +7607,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_438;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineBindPoint);
-        uint64_t cgen_var_439;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkCmdBindPipeline = 4 + 4 + count;
@@ -7553,16 +7622,16 @@
     memcpy(streamPtr, &packetSize_vkCmdBindPipeline, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_440;
-        *&cgen_var_440 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_440, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
     *streamPtrPtr += sizeof(VkPipelineBindPoint);
-    uint64_t cgen_var_441;
-    *&cgen_var_441 = get_host_u64_VkPipeline((*&local_pipeline));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_441, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
@@ -7611,7 +7680,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_442;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -7629,9 +7698,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetViewport, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_443;
-        *&cgen_var_443 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_443, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstViewport, sizeof(uint32_t));
@@ -7689,7 +7758,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_444;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -7707,9 +7776,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetScissor, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_445;
-        *&cgen_var_445 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_445, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstScissor, sizeof(uint32_t));
@@ -7746,7 +7815,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_446;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(float);
     }
@@ -7759,9 +7828,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetLineWidth, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_447;
-        *&cgen_var_447 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_447, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (float*)&local_lineWidth, sizeof(float));
@@ -7798,7 +7867,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_448;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(float);
         *countPtr += sizeof(float);
@@ -7813,9 +7882,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetDepthBias, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_449;
-        *&cgen_var_449 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_449, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (float*)&local_depthBiasConstantFactor, sizeof(float));
@@ -7850,7 +7919,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_450;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += 4 * sizeof(float);
     }
@@ -7863,9 +7932,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetBlendConstants, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_451;
-        *&cgen_var_451 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_451, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (float*)local_blendConstants, 4 * sizeof(float));
@@ -7899,7 +7968,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_452;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(float);
         *countPtr += sizeof(float);
@@ -7913,9 +7982,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetDepthBounds, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_453;
-        *&cgen_var_453 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_453, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (float*)&local_minDepthBounds, sizeof(float));
@@ -7951,7 +8020,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_454;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkStencilFaceFlags);
         *countPtr += sizeof(uint32_t);
@@ -7965,9 +8034,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetStencilCompareMask, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_455;
-        *&cgen_var_455 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_455, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
@@ -8003,7 +8072,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_456;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkStencilFaceFlags);
         *countPtr += sizeof(uint32_t);
@@ -8017,9 +8086,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetStencilWriteMask, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_457;
-        *&cgen_var_457 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_457, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
@@ -8055,7 +8124,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_458;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkStencilFaceFlags);
         *countPtr += sizeof(uint32_t);
@@ -8069,9 +8138,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetStencilReference, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_459;
-        *&cgen_var_459 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_459, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
@@ -8124,10 +8193,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_460;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineBindPoint);
-        uint64_t cgen_var_461;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -8147,16 +8216,16 @@
     memcpy(streamPtr, &packetSize_vkCmdBindDescriptorSets, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_463;
-        *&cgen_var_463 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_463, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
     *streamPtrPtr += sizeof(VkPipelineBindPoint);
-    uint64_t cgen_var_464;
-    *&cgen_var_464 = get_host_u64_VkPipelineLayout((*&local_layout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_464, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipelineLayout((*&local_layout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstSet, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -8164,11 +8233,11 @@
     *streamPtrPtr += sizeof(uint32_t);
     if (((descriptorSetCount)))
     {
-        uint8_t* cgen_var_465_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((descriptorSetCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkDescriptorSet(local_pDescriptorSets[k]);
-            memcpy(cgen_var_465_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((descriptorSetCount));
     }
@@ -8208,9 +8277,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_466;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_467;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(VkIndexType);
@@ -8224,14 +8293,14 @@
     memcpy(streamPtr, &packetSize_vkCmdBindIndexBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_468;
-        *&cgen_var_468 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_468, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_469;
-    *&cgen_var_469 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_469, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -8274,7 +8343,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_470;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -8293,9 +8362,9 @@
     memcpy(streamPtr, &packetSize_vkCmdBindVertexBuffers, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_472;
-        *&cgen_var_472 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_472, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstBinding, sizeof(uint32_t));
@@ -8304,11 +8373,11 @@
     *streamPtrPtr += sizeof(uint32_t);
     if (((bindingCount)))
     {
-        uint8_t* cgen_var_473_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((bindingCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkBuffer(local_pBuffers[k]);
-            memcpy(cgen_var_473_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((bindingCount));
     }
@@ -8349,7 +8418,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_474;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -8365,9 +8434,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDraw, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_475;
-        *&cgen_var_475 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_475, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_vertexCount, sizeof(uint32_t));
@@ -8416,7 +8485,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_476;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -8433,9 +8502,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDrawIndexed, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_477;
-        *&cgen_var_477 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_477, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_indexCount, sizeof(uint32_t));
@@ -8483,9 +8552,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_478;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_479;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(uint32_t);
@@ -8500,14 +8569,14 @@
     memcpy(streamPtr, &packetSize_vkCmdDrawIndirect, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_480;
-        *&cgen_var_480 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_480, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_481;
-    *&cgen_var_481 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_481, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -8550,9 +8619,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_482;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_483;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(uint32_t);
@@ -8567,14 +8636,14 @@
     memcpy(streamPtr, &packetSize_vkCmdDrawIndexedIndirect, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_484;
-        *&cgen_var_484 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_484, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_485;
-    *&cgen_var_485 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_485, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -8614,7 +8683,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_486;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -8629,9 +8698,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDispatch, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_487;
-        *&cgen_var_487 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_487, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_groupCountX, sizeof(uint32_t));
@@ -8669,9 +8738,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_488;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_489;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
     }
@@ -8684,14 +8753,14 @@
     memcpy(streamPtr, &packetSize_vkCmdDispatchIndirect, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_490;
-        *&cgen_var_490 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_490, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_491;
-    *&cgen_var_491 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_491, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -8745,11 +8814,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_492;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_493;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_494;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
@@ -8766,18 +8835,18 @@
     memcpy(streamPtr, &packetSize_vkCmdCopyBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_495;
-        *&cgen_var_495 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_495, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_496;
-    *&cgen_var_496 = get_host_u64_VkBuffer((*&local_srcBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_496, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_srcBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_497;
-    *&cgen_var_497 = get_host_u64_VkBuffer((*&local_dstBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_497, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_dstBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_regionCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -8841,12 +8910,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_498;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_499;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
-        uint64_t cgen_var_500;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
         *countPtr += sizeof(uint32_t);
@@ -8864,20 +8933,20 @@
     memcpy(streamPtr, &packetSize_vkCmdCopyImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_501;
-        *&cgen_var_501 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_501, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_502;
-    *&cgen_var_502 = get_host_u64_VkImage((*&local_srcImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_502, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_srcImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
-    uint64_t cgen_var_503;
-    *&cgen_var_503 = get_host_u64_VkImage((*&local_dstImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_503, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_dstImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
@@ -8946,12 +9015,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_504;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_505;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
-        uint64_t cgen_var_506;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
         *countPtr += sizeof(uint32_t);
@@ -8970,20 +9039,20 @@
     memcpy(streamPtr, &packetSize_vkCmdBlitImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_507;
-        *&cgen_var_507 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_507, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_508;
-    *&cgen_var_508 = get_host_u64_VkImage((*&local_srcImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_508, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_srcImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
-    uint64_t cgen_var_509;
-    *&cgen_var_509 = get_host_u64_VkImage((*&local_dstImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_509, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_dstImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
@@ -9048,11 +9117,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_510;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_511;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_512;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
         *countPtr += sizeof(uint32_t);
@@ -9070,18 +9139,18 @@
     memcpy(streamPtr, &packetSize_vkCmdCopyBufferToImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_513;
-        *&cgen_var_513 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_513, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_514;
-    *&cgen_var_514 = get_host_u64_VkBuffer((*&local_srcBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_514, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_srcBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_515;
-    *&cgen_var_515 = get_host_u64_VkImage((*&local_dstImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_515, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_dstImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
@@ -9144,12 +9213,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_516;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_517;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
-        uint64_t cgen_var_518;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((regionCount)); ++i)
@@ -9166,20 +9235,20 @@
     memcpy(streamPtr, &packetSize_vkCmdCopyImageToBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_519;
-        *&cgen_var_519 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_519, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_520;
-    *&cgen_var_520 = get_host_u64_VkImage((*&local_srcImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_520, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_srcImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
-    uint64_t cgen_var_521;
-    *&cgen_var_521 = get_host_u64_VkBuffer((*&local_dstBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_521, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_dstBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_regionCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -9223,9 +9292,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_522;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_523;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(VkDeviceSize);
@@ -9240,14 +9309,14 @@
     memcpy(streamPtr, &packetSize_vkCmdUpdateBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_524;
-        *&cgen_var_524 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_524, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_525;
-    *&cgen_var_525 = get_host_u64_VkBuffer((*&local_dstBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_525, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_dstBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -9290,9 +9359,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_526;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_527;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(VkDeviceSize);
@@ -9307,14 +9376,14 @@
     memcpy(streamPtr, &packetSize_vkCmdFillBuffer, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_528;
-        *&cgen_var_528 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_528, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_529;
-    *&cgen_var_529 = get_host_u64_VkBuffer((*&local_dstBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_529, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_dstBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -9384,9 +9453,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_530;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_531;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
         count_VkClearColorValue(sFeatureBits, (VkClearColorValue*)(local_pColor), countPtr);
@@ -9405,14 +9474,14 @@
     memcpy(streamPtr, &packetSize_vkCmdClearColorImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_532;
-        *&cgen_var_532 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_532, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_533;
-    *&cgen_var_533 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_533, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
@@ -9485,9 +9554,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_534;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_535;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
         count_VkClearDepthStencilValue(sFeatureBits, (VkClearDepthStencilValue*)(local_pDepthStencil), countPtr);
@@ -9506,14 +9575,14 @@
     memcpy(streamPtr, &packetSize_vkCmdClearDepthStencilImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_536;
-        *&cgen_var_536 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_536, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_537;
-    *&cgen_var_537 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_537, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
@@ -9589,7 +9658,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_538;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((attachmentCount)); ++i)
@@ -9611,9 +9680,9 @@
     memcpy(streamPtr, &packetSize_vkCmdClearAttachments, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_539;
-        *&cgen_var_539 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_539, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_attachmentCount, sizeof(uint32_t));
@@ -9684,12 +9753,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_540;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_541;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
-        uint64_t cgen_var_542;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkImageLayout);
         *countPtr += sizeof(uint32_t);
@@ -9707,20 +9776,20 @@
     memcpy(streamPtr, &packetSize_vkCmdResolveImage, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_543;
-        *&cgen_var_543 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_543, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_544;
-    *&cgen_var_544 = get_host_u64_VkImage((*&local_srcImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_544, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_srcImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_srcImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
-    uint64_t cgen_var_545;
-    *&cgen_var_545 = get_host_u64_VkImage((*&local_dstImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_545, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_dstImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkImageLayout*)&local_dstImageLayout, sizeof(VkImageLayout));
     *streamPtrPtr += sizeof(VkImageLayout);
@@ -9759,9 +9828,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_546;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_547;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineStageFlags);
     }
@@ -9774,14 +9843,14 @@
     memcpy(streamPtr, &packetSize_vkCmdSetEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_548;
-        *&cgen_var_548 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_548, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_549;
-    *&cgen_var_549 = get_host_u64_VkEvent((*&local_event));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_549, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
     *streamPtrPtr += sizeof(VkPipelineStageFlags);
@@ -9814,9 +9883,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_550;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_551;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineStageFlags);
     }
@@ -9829,14 +9898,14 @@
     memcpy(streamPtr, &packetSize_vkCmdResetEvent, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_552;
-        *&cgen_var_552 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_552, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_553;
-    *&cgen_var_553 = get_host_u64_VkEvent((*&local_event));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_553, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkEvent((*&local_event));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkPipelineStageFlags*)&local_stageMask, sizeof(VkPipelineStageFlags));
     *streamPtrPtr += sizeof(VkPipelineStageFlags);
@@ -9939,7 +10008,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_554;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         if (((eventCount)))
@@ -9973,20 +10042,20 @@
     memcpy(streamPtr, &packetSize_vkCmdWaitEvents, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_556;
-        *&cgen_var_556 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_556, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_eventCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     if (((eventCount)))
     {
-        uint8_t* cgen_var_557_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((eventCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkEvent(local_pEvents[k]);
-            memcpy(cgen_var_557_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((eventCount));
     }
@@ -10107,7 +10176,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_558;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineStageFlags);
         *countPtr += sizeof(VkPipelineStageFlags);
@@ -10137,9 +10206,9 @@
     memcpy(streamPtr, &packetSize_vkCmdPipelineBarrier, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_559;
-        *&cgen_var_559 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_559, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkPipelineStageFlags*)&local_srcStageMask, sizeof(VkPipelineStageFlags));
@@ -10198,9 +10267,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_560;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_561;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(VkQueryControlFlags);
@@ -10214,14 +10283,14 @@
     memcpy(streamPtr, &packetSize_vkCmdBeginQuery, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_562;
-        *&cgen_var_562 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_562, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_563;
-    *&cgen_var_563 = get_host_u64_VkQueryPool((*&local_queryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_563, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_query, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -10256,9 +10325,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_564;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_565;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -10271,14 +10340,14 @@
     memcpy(streamPtr, &packetSize_vkCmdEndQuery, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_566;
-        *&cgen_var_566 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_566, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_567;
-    *&cgen_var_567 = get_host_u64_VkQueryPool((*&local_queryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_567, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_query, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -10314,9 +10383,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_568;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_569;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -10330,14 +10399,14 @@
     memcpy(streamPtr, &packetSize_vkCmdResetQueryPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_570;
-        *&cgen_var_570 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_570, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_571;
-    *&cgen_var_571 = get_host_u64_VkQueryPool((*&local_queryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_571, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstQuery, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -10375,10 +10444,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_572;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineStageFlagBits);
-        uint64_t cgen_var_573;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -10391,16 +10460,16 @@
     memcpy(streamPtr, &packetSize_vkCmdWriteTimestamp, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_574;
-        *&cgen_var_574 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_574, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
     *streamPtrPtr += sizeof(VkPipelineStageFlagBits);
-    uint64_t cgen_var_575;
-    *&cgen_var_575 = get_host_u64_VkQueryPool((*&local_queryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_575, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_query, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -10448,13 +10517,13 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_576;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_577;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
-        uint64_t cgen_var_578;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(VkDeviceSize);
@@ -10469,22 +10538,22 @@
     memcpy(streamPtr, &packetSize_vkCmdCopyQueryPoolResults, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_579;
-        *&cgen_var_579 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_579, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_580;
-    *&cgen_var_580 = get_host_u64_VkQueryPool((*&local_queryPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_580, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstQuery, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     memcpy(*streamPtrPtr, (uint32_t*)&local_queryCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
-    uint64_t cgen_var_581;
-    *&cgen_var_581 = get_host_u64_VkBuffer((*&local_dstBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_581, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_dstBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -10531,9 +10600,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_582;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_583;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkShaderStageFlags);
         *countPtr += sizeof(uint32_t);
@@ -10549,14 +10618,14 @@
     memcpy(streamPtr, &packetSize_vkCmdPushConstants, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_584;
-        *&cgen_var_584 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_584, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_585;
-    *&cgen_var_585 = get_host_u64_VkPipelineLayout((*&local_layout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_585, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipelineLayout((*&local_layout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkShaderStageFlags*)&local_stageFlags, sizeof(VkShaderStageFlags));
     *streamPtrPtr += sizeof(VkShaderStageFlags);
@@ -10604,7 +10673,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_586;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkRenderPassBeginInfo(sFeatureBits, (VkRenderPassBeginInfo*)(local_pRenderPassBegin), countPtr);
         *countPtr += sizeof(VkSubpassContents);
@@ -10618,9 +10687,9 @@
     memcpy(streamPtr, &packetSize_vkCmdBeginRenderPass, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_587;
-        *&cgen_var_587 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_587, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin), streamPtrPtr);
@@ -10652,7 +10721,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_588;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkSubpassContents);
     }
@@ -10665,9 +10734,9 @@
     memcpy(streamPtr, &packetSize_vkCmdNextSubpass, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_589;
-        *&cgen_var_589 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_589, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkSubpassContents*)&local_contents, sizeof(VkSubpassContents));
@@ -10695,7 +10764,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_590;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkCmdEndRenderPass = 4 + 4 + count;
@@ -10707,9 +10776,9 @@
     memcpy(streamPtr, &packetSize_vkCmdEndRenderPass, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_591;
-        *&cgen_var_591 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_591, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     ++encodeCount;;
@@ -10742,7 +10811,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_592;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         if (((commandBufferCount)))
@@ -10759,20 +10828,20 @@
     memcpy(streamPtr, &packetSize_vkCmdExecuteCommands, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_594;
-        *&cgen_var_594 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_594, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_commandBufferCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     if (((commandBufferCount)))
     {
-        uint8_t* cgen_var_595_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((commandBufferCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkCommandBuffer(local_pCommandBuffers[k]);
-            memcpy(cgen_var_595_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((commandBufferCount));
     }
@@ -10859,7 +10928,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_596;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
@@ -10875,9 +10944,9 @@
     memcpy(streamPtr, &opcode_vkBindBufferMemory2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkBindBufferMemory2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_597;
-    *&cgen_var_597 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_597, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -10932,7 +11001,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_598;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
@@ -10948,9 +11017,9 @@
     memcpy(streamPtr, &opcode_vkBindImageMemory2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkBindImageMemory2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_599;
-    *&cgen_var_599 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_599, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -10994,7 +11063,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_600;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -11009,9 +11078,9 @@
     memcpy(streamPtr, &opcode_vkGetDeviceGroupPeerMemoryFeatures, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceGroupPeerMemoryFeatures, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_601;
-    *&cgen_var_601 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_601, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_heapIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -11048,7 +11117,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_602;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -11061,9 +11130,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetDeviceMask, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_603;
-        *&cgen_var_603 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_603, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_deviceMask, sizeof(uint32_t));
@@ -11109,7 +11178,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_604;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -11127,9 +11196,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDispatchBase, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_605;
-        *&cgen_var_605 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_605, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_baseGroupX, sizeof(uint32_t));
@@ -11169,7 +11238,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_606;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -11181,9 +11250,12 @@
         *countPtr += 8;
         if (pPhysicalDeviceGroupProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+            if ((pPhysicalDeviceGroupCount) != nullptr)
             {
-                count_VkPhysicalDeviceGroupProperties(sFeatureBits, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+                {
+                    count_VkPhysicalDeviceGroupProperties(sFeatureBits, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i), countPtr);
+                }
             }
         }
     }
@@ -11195,13 +11267,13 @@
     memcpy(streamPtr, &opcode_vkEnumeratePhysicalDeviceGroups, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkEnumeratePhysicalDeviceGroups, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_607;
-    *&cgen_var_607 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_607, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_608 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
-    memcpy((*streamPtrPtr), &cgen_var_608, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPhysicalDeviceGroupCount)
@@ -11210,8 +11282,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_609 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
-    memcpy((*streamPtrPtr), &cgen_var_609, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPhysicalDeviceGroupProperties)
@@ -11241,16 +11313,22 @@
         {
             fprintf(stderr, "fatal: pPhysicalDeviceGroupProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+        if ((pPhysicalDeviceGroupCount) != nullptr)
         {
-            unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+            {
+                unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            }
         }
     }
-    if (pPhysicalDeviceGroupProperties)
+    if ((pPhysicalDeviceGroupCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+        if (pPhysicalDeviceGroupProperties)
         {
-            transform_fromhost_VkPhysicalDeviceGroupProperties(sResourceTracker, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+            {
+                transform_fromhost_VkPhysicalDeviceGroupProperties(sResourceTracker, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            }
         }
     }
     VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
@@ -11292,7 +11370,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_612;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImageMemoryRequirementsInfo2(sFeatureBits, (VkImageMemoryRequirementsInfo2*)(local_pInfo), countPtr);
         count_VkMemoryRequirements2(sFeatureBits, (VkMemoryRequirements2*)(pMemoryRequirements), countPtr);
@@ -11305,9 +11383,9 @@
     memcpy(streamPtr, &opcode_vkGetImageMemoryRequirements2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetImageMemoryRequirements2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_613;
-    *&cgen_var_613 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_613, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo), streamPtrPtr);
     reservedmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements), streamPtrPtr);
@@ -11352,7 +11430,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_614;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkBufferMemoryRequirementsInfo2(sFeatureBits, (VkBufferMemoryRequirementsInfo2*)(local_pInfo), countPtr);
         count_VkMemoryRequirements2(sFeatureBits, (VkMemoryRequirements2*)(pMemoryRequirements), countPtr);
@@ -11365,9 +11443,9 @@
     memcpy(streamPtr, &opcode_vkGetBufferMemoryRequirements2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetBufferMemoryRequirements2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_615;
-    *&cgen_var_615 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_615, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo), streamPtrPtr);
     reservedmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements), streamPtrPtr);
@@ -11413,7 +11491,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_616;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImageSparseMemoryRequirementsInfo2(sFeatureBits, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo), countPtr);
         // WARNING PTR CHECK
@@ -11426,9 +11504,12 @@
         *countPtr += 8;
         if (pSparseMemoryRequirements)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            if ((pSparseMemoryRequirementCount) != nullptr)
             {
-                count_VkSparseImageMemoryRequirements2(sFeatureBits, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+                {
+                    count_VkSparseImageMemoryRequirements2(sFeatureBits, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i), countPtr);
+                }
             }
         }
     }
@@ -11440,14 +11521,14 @@
     memcpy(streamPtr, &opcode_vkGetImageSparseMemoryRequirements2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetImageSparseMemoryRequirements2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_617;
-    *&cgen_var_617 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_617, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageSparseMemoryRequirementsInfo2(stream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_618 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
-    memcpy((*streamPtrPtr), &cgen_var_618, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSparseMemoryRequirementCount)
@@ -11456,8 +11537,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_619 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
-    memcpy((*streamPtrPtr), &cgen_var_619, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSparseMemoryRequirements)
@@ -11487,16 +11568,22 @@
         {
             fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        if ((pSparseMemoryRequirementCount) != nullptr)
         {
-            unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            }
         }
     }
-    if (pSparseMemoryRequirements)
+    if ((pSparseMemoryRequirementCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        if (pSparseMemoryRequirements)
         {
-            transform_fromhost_VkSparseImageMemoryRequirements2(sResourceTracker, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                transform_fromhost_VkSparseImageMemoryRequirements2(sResourceTracker, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            }
         }
     }
     ++encodeCount;;
@@ -11523,7 +11610,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_622;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceFeatures2(sFeatureBits, (VkPhysicalDeviceFeatures2*)(pFeatures), countPtr);
     }
@@ -11535,9 +11622,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceFeatures2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceFeatures2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_623;
-    *&cgen_var_623 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_623, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures), streamPtrPtr);
     unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
@@ -11569,7 +11656,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_624;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceProperties2(sFeatureBits, (VkPhysicalDeviceProperties2*)(pProperties), countPtr);
     }
@@ -11581,9 +11668,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_625;
-    *&cgen_var_625 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_625, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties), streamPtrPtr);
     unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
@@ -11619,7 +11706,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_626;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         count_VkFormatProperties2(sFeatureBits, (VkFormatProperties2*)(pFormatProperties), countPtr);
@@ -11632,9 +11719,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceFormatProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceFormatProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_627;
-    *&cgen_var_627 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_627, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -11680,7 +11767,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_628;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceImageFormatInfo2(sFeatureBits, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo), countPtr);
         count_VkImageFormatProperties2(sFeatureBits, (VkImageFormatProperties2*)(pImageFormatProperties), countPtr);
@@ -11693,9 +11780,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceImageFormatProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceImageFormatProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_629;
-    *&cgen_var_629 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_629, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo), streamPtrPtr);
     reservedmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties), streamPtrPtr);
@@ -11732,7 +11819,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_630;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -11744,9 +11831,12 @@
         *countPtr += 8;
         if (pQueueFamilyProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            if ((pQueueFamilyPropertyCount) != nullptr)
             {
-                count_VkQueueFamilyProperties2(sFeatureBits, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+                {
+                    count_VkQueueFamilyProperties2(sFeatureBits, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i), countPtr);
+                }
             }
         }
     }
@@ -11758,13 +11848,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceQueueFamilyProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceQueueFamilyProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_631;
-    *&cgen_var_631 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_631, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_632 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_632, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pQueueFamilyPropertyCount)
@@ -11773,8 +11863,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_633 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
-    memcpy((*streamPtrPtr), &cgen_var_633, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pQueueFamilyProperties)
@@ -11804,16 +11894,22 @@
         {
             fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        if ((pQueueFamilyPropertyCount) != nullptr)
         {
-            unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            {
+                unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            }
         }
     }
-    if (pQueueFamilyProperties)
+    if ((pQueueFamilyPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        if (pQueueFamilyProperties)
         {
-            transform_fromhost_VkQueueFamilyProperties2(sResourceTracker, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            {
+                transform_fromhost_VkQueueFamilyProperties2(sResourceTracker, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            }
         }
     }
     ++encodeCount;;
@@ -11840,7 +11936,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_636;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceMemoryProperties2(sFeatureBits, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties), countPtr);
     }
@@ -11852,9 +11948,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceMemoryProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceMemoryProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_637;
-    *&cgen_var_637 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_637, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties), streamPtrPtr);
     unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
@@ -11900,7 +11996,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_638;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceSparseImageFormatInfo2(sFeatureBits, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo), countPtr);
         // WARNING PTR CHECK
@@ -11913,9 +12009,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkSparseImageFormatProperties2(sFeatureBits, (VkSparseImageFormatProperties2*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkSparseImageFormatProperties2(sFeatureBits, (VkSparseImageFormatProperties2*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -11927,14 +12026,14 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSparseImageFormatProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_639;
-    *&cgen_var_639 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_639, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceSparseImageFormatInfo2(stream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_640 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_640, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -11943,8 +12042,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_641 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_641, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -11974,16 +12073,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkSparseImageFormatProperties2(sResourceTracker, (VkSparseImageFormatProperties2*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkSparseImageFormatProperties2(sResourceTracker, (VkSparseImageFormatProperties2*)(pProperties + i));
+            }
         }
     }
     ++encodeCount;;
@@ -12015,9 +12120,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_644;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_645;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkCommandPoolTrimFlags);
     }
@@ -12029,13 +12134,13 @@
     memcpy(streamPtr, &opcode_vkTrimCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkTrimCommandPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_646;
-    *&cgen_var_646 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_646, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_647;
-    *&cgen_var_647 = get_host_u64_VkCommandPool((*&local_commandPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_647, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkCommandPool((*&local_commandPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
     *streamPtrPtr += sizeof(VkCommandPoolTrimFlags);
@@ -12076,10 +12181,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_648;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDeviceQueueInfo2(sFeatureBits, (VkDeviceQueueInfo2*)(local_pQueueInfo), countPtr);
-        uint64_t cgen_var_649;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkGetDeviceQueue2 = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -12090,20 +12195,20 @@
     memcpy(streamPtr, &opcode_vkGetDeviceQueue2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceQueue2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_650;
-    *&cgen_var_650 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_650, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDeviceQueueInfo2(stream, (VkDeviceQueueInfo2*)(local_pQueueInfo), streamPtrPtr);
     /* is handle, possibly out */;
-    uint64_t cgen_var_651;
-    *&cgen_var_651 = (uint64_t)((*pQueue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_651, 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = (uint64_t)((*pQueue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_652;
-    stream->read((uint64_t*)&cgen_var_652, 8);
-    stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_652, (VkQueue*)pQueue, 1);
+    uint64_t cgen_var_2;
+    stream->read((uint64_t*)&cgen_var_2, 8);
+    stream->handleMapping()->mapHandles_u64_VkQueue(&cgen_var_2, (VkQueue*)pQueue, 1);
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
     {
@@ -12153,7 +12258,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_653;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSamplerYcbcrConversionCreateInfo(sFeatureBits, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -12162,7 +12267,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_654;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateSamplerYcbcrConversion = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -12173,14 +12278,14 @@
     memcpy(streamPtr, &opcode_vkCreateSamplerYcbcrConversion, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateSamplerYcbcrConversion, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_655;
-    *&cgen_var_655 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_655, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSamplerYcbcrConversionCreateInfo(stream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_656 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_656, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -12188,15 +12293,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_657;
-    *&cgen_var_657 = (uint64_t)((*pYcbcrConversion));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_657, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pYcbcrConversion));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_658;
-    stream->read((uint64_t*)&cgen_var_658, 8);
-    stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_658, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_3, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSamplerYcbcrConversion_VkResult_return, sizeof(VkResult));
@@ -12240,9 +12345,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_659;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_660;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -12259,17 +12364,17 @@
     memcpy(streamPtr, &opcode_vkDestroySamplerYcbcrConversion, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroySamplerYcbcrConversion, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_661;
-    *&cgen_var_661 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_661, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_662;
-    *&cgen_var_662 = get_host_u64_VkSamplerYcbcrConversion((*&local_ycbcrConversion));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_662, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSamplerYcbcrConversion((*&local_ycbcrConversion));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_663 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_663, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -12327,7 +12432,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_664;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDescriptorUpdateTemplateCreateInfo(sFeatureBits, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -12336,7 +12441,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_665;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDescriptorUpdateTemplate = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -12347,14 +12452,14 @@
     memcpy(streamPtr, &opcode_vkCreateDescriptorUpdateTemplate, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDescriptorUpdateTemplate, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_666;
-    *&cgen_var_666 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_666, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDescriptorUpdateTemplateCreateInfo(stream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_667 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_667, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -12362,15 +12467,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_668;
-    *&cgen_var_668 = (uint64_t)((*pDescriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_668, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pDescriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_669;
-    stream->read((uint64_t*)&cgen_var_669, 8);
-    stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_669, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_3, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorUpdateTemplate_VkResult_return, sizeof(VkResult));
@@ -12415,9 +12520,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_670;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_671;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -12434,17 +12539,17 @@
     memcpy(streamPtr, &opcode_vkDestroyDescriptorUpdateTemplate, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyDescriptorUpdateTemplate, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_672;
-    *&cgen_var_672 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_672, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_673;
-    *&cgen_var_673 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_673, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_674 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_674, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -12486,11 +12591,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_675;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_676;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_677;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -12507,21 +12612,21 @@
     memcpy(streamPtr, &opcode_vkUpdateDescriptorSetWithTemplate, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkUpdateDescriptorSetWithTemplate, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_678;
-    *&cgen_var_678 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_678, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_679;
-    *&cgen_var_679 = get_host_u64_VkDescriptorSet((*&local_descriptorSet));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_679, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorSet((*&local_descriptorSet));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_680;
-    *&cgen_var_680 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_680, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_681 = (uint64_t)(uintptr_t)local_pData;
-    memcpy((*streamPtrPtr), &cgen_var_681, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)local_pData;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pData)
@@ -12567,7 +12672,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_682;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceExternalBufferInfo(sFeatureBits, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo), countPtr);
         count_VkExternalBufferProperties(sFeatureBits, (VkExternalBufferProperties*)(pExternalBufferProperties), countPtr);
@@ -12580,9 +12685,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceExternalBufferProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceExternalBufferProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_683;
-    *&cgen_var_683 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_683, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo), streamPtrPtr);
     reservedmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties), streamPtrPtr);
@@ -12628,7 +12733,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_684;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceExternalFenceInfo(sFeatureBits, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo), countPtr);
         count_VkExternalFenceProperties(sFeatureBits, (VkExternalFenceProperties*)(pExternalFenceProperties), countPtr);
@@ -12641,9 +12746,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceExternalFenceProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceExternalFenceProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_685;
-    *&cgen_var_685 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_685, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo), streamPtrPtr);
     reservedmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties), streamPtrPtr);
@@ -12688,7 +12793,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_686;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceExternalSemaphoreInfo(sFeatureBits, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo), countPtr);
         count_VkExternalSemaphoreProperties(sFeatureBits, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties), countPtr);
@@ -12701,9 +12806,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceExternalSemaphoreProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceExternalSemaphoreProperties, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_687;
-    *&cgen_var_687 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_687, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo), streamPtrPtr);
     reservedmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties), streamPtrPtr);
@@ -12712,6 +12817,7 @@
     {
         transform_fromhost_VkExternalSemaphoreProperties(sResourceTracker, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     }
+    sResourceTracker->on_vkGetPhysicalDeviceExternalSemaphoreProperties(this, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
     {
@@ -12748,7 +12854,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_688;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDescriptorSetLayoutCreateInfo(sFeatureBits, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo), countPtr);
         count_VkDescriptorSetLayoutSupport(sFeatureBits, (VkDescriptorSetLayoutSupport*)(pSupport), countPtr);
@@ -12761,9 +12867,9 @@
     memcpy(streamPtr, &opcode_vkGetDescriptorSetLayoutSupport, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDescriptorSetLayoutSupport, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_689;
-    *&cgen_var_689 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_689, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     reservedmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport), streamPtrPtr);
@@ -12782,6 +12888,853 @@
 }
 
 #endif
+#ifdef VK_VERSION_1_2
+void VkEncoder::vkCmdDrawIndirectCount(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    VkBuffer countBuffer,
+    VkDeviceSize countBufferOffset,
+    uint32_t maxDrawCount,
+    uint32_t stride,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBuffer local_buffer;
+    VkDeviceSize local_offset;
+    VkBuffer local_countBuffer;
+    VkDeviceSize local_countBufferOffset;
+    uint32_t local_maxDrawCount;
+    uint32_t local_stride;
+    local_commandBuffer = commandBuffer;
+    local_buffer = buffer;
+    local_offset = offset;
+    local_countBuffer = countBuffer;
+    local_countBufferOffset = countBufferOffset;
+    local_maxDrawCount = maxDrawCount;
+    local_stride = stride;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdDrawIndirectCount = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawIndirectCount -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawIndirectCount);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawIndirectCount = OP_vkCmdDrawIndirectCount;
+    memcpy(streamPtr, &opcode_vkCmdDrawIndirectCount, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawIndirectCount, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_countBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_stride, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdDrawIndexedIndirectCount(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    VkBuffer countBuffer,
+    VkDeviceSize countBufferOffset,
+    uint32_t maxDrawCount,
+    uint32_t stride,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBuffer local_buffer;
+    VkDeviceSize local_offset;
+    VkBuffer local_countBuffer;
+    VkDeviceSize local_countBufferOffset;
+    uint32_t local_maxDrawCount;
+    uint32_t local_stride;
+    local_commandBuffer = commandBuffer;
+    local_buffer = buffer;
+    local_offset = offset;
+    local_countBuffer = countBuffer;
+    local_countBufferOffset = countBufferOffset;
+    local_maxDrawCount = maxDrawCount;
+    local_stride = stride;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdDrawIndexedIndirectCount = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawIndexedIndirectCount -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawIndexedIndirectCount);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawIndexedIndirectCount = OP_vkCmdDrawIndexedIndirectCount;
+    memcpy(streamPtr, &opcode_vkCmdDrawIndexedIndirectCount, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawIndexedIndirectCount, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_countBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_stride, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkCreateRenderPass2(
+    VkDevice device,
+    const VkRenderPassCreateInfo2* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkRenderPass* pRenderPass,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkRenderPassCreateInfo2* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkRenderPassCreateInfo2*)pool->alloc(sizeof(const VkRenderPassCreateInfo2));
+        deepcopy_VkRenderPassCreateInfo2(pool, pCreateInfo, (VkRenderPassCreateInfo2*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkRenderPassCreateInfo2(sResourceTracker, (VkRenderPassCreateInfo2*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkRenderPassCreateInfo2(sFeatureBits, (VkRenderPassCreateInfo2*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateRenderPass2 = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateRenderPass2);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateRenderPass2 = OP_vkCreateRenderPass2;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateRenderPass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateRenderPass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkRenderPassCreateInfo2(stream, (VkRenderPassCreateInfo2*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pRenderPass));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_3, (VkRenderPass*)pRenderPass, 1);
+    VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateRenderPass2_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateRenderPass2_VkResult_return;
+}
+
+void VkEncoder::vkCmdBeginRenderPass2(
+    VkCommandBuffer commandBuffer,
+    const VkRenderPassBeginInfo* pRenderPassBegin,
+    const VkSubpassBeginInfo* pSubpassBeginInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkRenderPassBeginInfo* local_pRenderPassBegin;
+    VkSubpassBeginInfo* local_pSubpassBeginInfo;
+    local_commandBuffer = commandBuffer;
+    local_pRenderPassBegin = nullptr;
+    if (pRenderPassBegin)
+    {
+        local_pRenderPassBegin = (VkRenderPassBeginInfo*)pool->alloc(sizeof(const VkRenderPassBeginInfo));
+        deepcopy_VkRenderPassBeginInfo(pool, pRenderPassBegin, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
+    }
+    local_pSubpassBeginInfo = nullptr;
+    if (pSubpassBeginInfo)
+    {
+        local_pSubpassBeginInfo = (VkSubpassBeginInfo*)pool->alloc(sizeof(const VkSubpassBeginInfo));
+        deepcopy_VkSubpassBeginInfo(pool, pSubpassBeginInfo, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
+    }
+    if (local_pRenderPassBegin)
+    {
+        transform_tohost_VkRenderPassBeginInfo(sResourceTracker, (VkRenderPassBeginInfo*)(local_pRenderPassBegin));
+    }
+    if (local_pSubpassBeginInfo)
+    {
+        transform_tohost_VkSubpassBeginInfo(sResourceTracker, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkRenderPassBeginInfo(sFeatureBits, (VkRenderPassBeginInfo*)(local_pRenderPassBegin), countPtr);
+        count_VkSubpassBeginInfo(sFeatureBits, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdBeginRenderPass2 = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBeginRenderPass2 -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBeginRenderPass2);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBeginRenderPass2 = OP_vkCmdBeginRenderPass2;
+    memcpy(streamPtr, &opcode_vkCmdBeginRenderPass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBeginRenderPass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin), streamPtrPtr);
+    reservedmarshal_VkSubpassBeginInfo(stream, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdNextSubpass2(
+    VkCommandBuffer commandBuffer,
+    const VkSubpassBeginInfo* pSubpassBeginInfo,
+    const VkSubpassEndInfo* pSubpassEndInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkSubpassBeginInfo* local_pSubpassBeginInfo;
+    VkSubpassEndInfo* local_pSubpassEndInfo;
+    local_commandBuffer = commandBuffer;
+    local_pSubpassBeginInfo = nullptr;
+    if (pSubpassBeginInfo)
+    {
+        local_pSubpassBeginInfo = (VkSubpassBeginInfo*)pool->alloc(sizeof(const VkSubpassBeginInfo));
+        deepcopy_VkSubpassBeginInfo(pool, pSubpassBeginInfo, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
+    }
+    local_pSubpassEndInfo = nullptr;
+    if (pSubpassEndInfo)
+    {
+        local_pSubpassEndInfo = (VkSubpassEndInfo*)pool->alloc(sizeof(const VkSubpassEndInfo));
+        deepcopy_VkSubpassEndInfo(pool, pSubpassEndInfo, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
+    }
+    if (local_pSubpassBeginInfo)
+    {
+        transform_tohost_VkSubpassBeginInfo(sResourceTracker, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
+    }
+    if (local_pSubpassEndInfo)
+    {
+        transform_tohost_VkSubpassEndInfo(sResourceTracker, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkSubpassBeginInfo(sFeatureBits, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), countPtr);
+        count_VkSubpassEndInfo(sFeatureBits, (VkSubpassEndInfo*)(local_pSubpassEndInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdNextSubpass2 = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdNextSubpass2 -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdNextSubpass2);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdNextSubpass2 = OP_vkCmdNextSubpass2;
+    memcpy(streamPtr, &opcode_vkCmdNextSubpass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdNextSubpass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkSubpassBeginInfo(stream, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), streamPtrPtr);
+    reservedmarshal_VkSubpassEndInfo(stream, (VkSubpassEndInfo*)(local_pSubpassEndInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdEndRenderPass2(
+    VkCommandBuffer commandBuffer,
+    const VkSubpassEndInfo* pSubpassEndInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkSubpassEndInfo* local_pSubpassEndInfo;
+    local_commandBuffer = commandBuffer;
+    local_pSubpassEndInfo = nullptr;
+    if (pSubpassEndInfo)
+    {
+        local_pSubpassEndInfo = (VkSubpassEndInfo*)pool->alloc(sizeof(const VkSubpassEndInfo));
+        deepcopy_VkSubpassEndInfo(pool, pSubpassEndInfo, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
+    }
+    if (local_pSubpassEndInfo)
+    {
+        transform_tohost_VkSubpassEndInfo(sResourceTracker, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkSubpassEndInfo(sFeatureBits, (VkSubpassEndInfo*)(local_pSubpassEndInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdEndRenderPass2 = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdEndRenderPass2 -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdEndRenderPass2);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdEndRenderPass2 = OP_vkCmdEndRenderPass2;
+    memcpy(streamPtr, &opcode_vkCmdEndRenderPass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdEndRenderPass2, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkSubpassEndInfo(stream, (VkSubpassEndInfo*)(local_pSubpassEndInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkResetQueryPool(
+    VkDevice device,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t queryCount,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkQueryPool local_queryPool;
+    uint32_t local_firstQuery;
+    uint32_t local_queryCount;
+    local_device = device;
+    local_queryPool = queryPool;
+    local_firstQuery = firstQuery;
+    local_queryCount = queryCount;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkResetQueryPool = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkResetQueryPool);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkResetQueryPool = OP_vkResetQueryPool;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkResetQueryPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkResetQueryPool, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstQuery, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_queryCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkGetSemaphoreCounterValue(
+    VkDevice device,
+    VkSemaphore semaphore,
+    uint64_t* pValue,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSemaphore local_semaphore;
+    local_device = device;
+    local_semaphore = semaphore;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkGetSemaphoreCounterValue = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetSemaphoreCounterValue);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetSemaphoreCounterValue = OP_vkGetSemaphoreCounterValue;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetSemaphoreCounterValue, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetSemaphoreCounterValue, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSemaphore((*&local_semaphore));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint64_t*)pValue, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    stream->read((uint64_t*)pValue, sizeof(uint64_t));
+    VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
+    stream->read(&vkGetSemaphoreCounterValue_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetSemaphoreCounterValue_VkResult_return;
+}
+
+VkResult VkEncoder::vkWaitSemaphores(
+    VkDevice device,
+    const VkSemaphoreWaitInfo* pWaitInfo,
+    uint64_t timeout,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSemaphoreWaitInfo* local_pWaitInfo;
+    uint64_t local_timeout;
+    local_device = device;
+    local_pWaitInfo = nullptr;
+    if (pWaitInfo)
+    {
+        local_pWaitInfo = (VkSemaphoreWaitInfo*)pool->alloc(sizeof(const VkSemaphoreWaitInfo));
+        deepcopy_VkSemaphoreWaitInfo(pool, pWaitInfo, (VkSemaphoreWaitInfo*)(local_pWaitInfo));
+    }
+    local_timeout = timeout;
+    if (local_pWaitInfo)
+    {
+        transform_tohost_VkSemaphoreWaitInfo(sResourceTracker, (VkSemaphoreWaitInfo*)(local_pWaitInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkSemaphoreWaitInfo(sFeatureBits, (VkSemaphoreWaitInfo*)(local_pWaitInfo), countPtr);
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkWaitSemaphores = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkWaitSemaphores);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkWaitSemaphores = OP_vkWaitSemaphores;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkWaitSemaphores, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkWaitSemaphores, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkSemaphoreWaitInfo(stream, (VkSemaphoreWaitInfo*)(local_pWaitInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (uint64_t*)&local_timeout, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
+    stream->read(&vkWaitSemaphores_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkWaitSemaphores_VkResult_return;
+}
+
+VkResult VkEncoder::vkSignalSemaphore(
+    VkDevice device,
+    const VkSemaphoreSignalInfo* pSignalInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSemaphoreSignalInfo* local_pSignalInfo;
+    local_device = device;
+    local_pSignalInfo = nullptr;
+    if (pSignalInfo)
+    {
+        local_pSignalInfo = (VkSemaphoreSignalInfo*)pool->alloc(sizeof(const VkSemaphoreSignalInfo));
+        deepcopy_VkSemaphoreSignalInfo(pool, pSignalInfo, (VkSemaphoreSignalInfo*)(local_pSignalInfo));
+    }
+    if (local_pSignalInfo)
+    {
+        transform_tohost_VkSemaphoreSignalInfo(sResourceTracker, (VkSemaphoreSignalInfo*)(local_pSignalInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkSemaphoreSignalInfo(sFeatureBits, (VkSemaphoreSignalInfo*)(local_pSignalInfo), countPtr);
+    }
+    uint32_t packetSize_vkSignalSemaphore = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSignalSemaphore);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSignalSemaphore = OP_vkSignalSemaphore;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSignalSemaphore, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSignalSemaphore, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkSemaphoreSignalInfo(stream, (VkSemaphoreSignalInfo*)(local_pSignalInfo), streamPtrPtr);
+    VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
+    stream->read(&vkSignalSemaphore_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkSignalSemaphore_VkResult_return;
+}
+
+VkDeviceAddress VkEncoder::vkGetBufferDeviceAddress(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkBufferDeviceAddressInfo* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkBufferDeviceAddressInfo*)pool->alloc(sizeof(const VkBufferDeviceAddressInfo));
+        deepcopy_VkBufferDeviceAddressInfo(pool, pInfo, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkBufferDeviceAddressInfo(sResourceTracker, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkBufferDeviceAddressInfo(sFeatureBits, (VkBufferDeviceAddressInfo*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetBufferDeviceAddress = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetBufferDeviceAddress);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetBufferDeviceAddress = OP_vkGetBufferDeviceAddress;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetBufferDeviceAddress, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetBufferDeviceAddress, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkBufferDeviceAddressInfo(stream, (VkBufferDeviceAddressInfo*)(local_pInfo), streamPtrPtr);
+    VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
+    stream->read(&vkGetBufferDeviceAddress_VkDeviceAddress_return, sizeof(VkDeviceAddress));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetBufferDeviceAddress_VkDeviceAddress_return;
+}
+
+uint64_t VkEncoder::vkGetBufferOpaqueCaptureAddress(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkBufferDeviceAddressInfo* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkBufferDeviceAddressInfo*)pool->alloc(sizeof(const VkBufferDeviceAddressInfo));
+        deepcopy_VkBufferDeviceAddressInfo(pool, pInfo, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkBufferDeviceAddressInfo(sResourceTracker, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkBufferDeviceAddressInfo(sFeatureBits, (VkBufferDeviceAddressInfo*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetBufferOpaqueCaptureAddress = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetBufferOpaqueCaptureAddress);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetBufferOpaqueCaptureAddress = OP_vkGetBufferOpaqueCaptureAddress;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetBufferOpaqueCaptureAddress, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetBufferOpaqueCaptureAddress, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkBufferDeviceAddressInfo(stream, (VkBufferDeviceAddressInfo*)(local_pInfo), streamPtrPtr);
+    uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
+    stream->read(&vkGetBufferOpaqueCaptureAddress_uint64_t_return, sizeof(uint64_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
+}
+
+uint64_t VkEncoder::vkGetDeviceMemoryOpaqueCaptureAddress(
+    VkDevice device,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeviceMemoryOpaqueCaptureAddressInfo* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkDeviceMemoryOpaqueCaptureAddressInfo*)pool->alloc(sizeof(const VkDeviceMemoryOpaqueCaptureAddressInfo));
+        deepcopy_VkDeviceMemoryOpaqueCaptureAddressInfo(pool, pInfo, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkDeviceMemoryOpaqueCaptureAddressInfo(sResourceTracker, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkDeviceMemoryOpaqueCaptureAddressInfo(sFeatureBits, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetDeviceMemoryOpaqueCaptureAddress = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceMemoryOpaqueCaptureAddress);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceMemoryOpaqueCaptureAddress = OP_vkGetDeviceMemoryOpaqueCaptureAddress;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceMemoryOpaqueCaptureAddress, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceMemoryOpaqueCaptureAddress, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(stream, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo), streamPtrPtr);
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
+    stream->read(&vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return, sizeof(uint64_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
+}
+
+#endif
 #ifdef VK_KHR_surface
 void VkEncoder::vkDestroySurfaceKHR(
     VkInstance instance,
@@ -12813,9 +13766,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_690;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_691;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -12832,17 +13785,17 @@
     memcpy(streamPtr, &opcode_vkDestroySurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroySurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_692;
-    *&cgen_var_692 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_692, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_693;
-    *&cgen_var_693 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_693, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_694 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_694, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -12881,10 +13834,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_695;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
-        uint64_t cgen_var_696;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkBool32);
     }
@@ -12896,15 +13849,15 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfaceSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfaceSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_697;
-    *&cgen_var_697 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_697, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
-    uint64_t cgen_var_698;
-    *&cgen_var_698 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_698, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkBool32*)pSupported, sizeof(VkBool32));
     *streamPtrPtr += sizeof(VkBool32);
@@ -12939,9 +13892,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_699;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_700;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkSurfaceCapabilitiesKHR(sFeatureBits, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities), countPtr);
     }
@@ -12953,13 +13906,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfaceCapabilitiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_701;
-    *&cgen_var_701 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_701, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_702;
-    *&cgen_var_702 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_702, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities), streamPtrPtr);
     unmarshal_VkSurfaceCapabilitiesKHR(stream, (VkSurfaceCapabilitiesKHR*)(pSurfaceCapabilities));
@@ -12998,9 +13951,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_703;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_704;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -13012,9 +13965,12 @@
         *countPtr += 8;
         if (pSurfaceFormats)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+            if ((pSurfaceFormatCount) != nullptr)
             {
-                count_VkSurfaceFormatKHR(sFeatureBits, (VkSurfaceFormatKHR*)(pSurfaceFormats + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+                {
+                    count_VkSurfaceFormatKHR(sFeatureBits, (VkSurfaceFormatKHR*)(pSurfaceFormats + i), countPtr);
+                }
             }
         }
     }
@@ -13026,17 +13982,17 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfaceFormatsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfaceFormatsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_705;
-    *&cgen_var_705 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_705, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_706;
-    *&cgen_var_706 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_706, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_707 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
-    memcpy((*streamPtrPtr), &cgen_var_707, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSurfaceFormatCount)
@@ -13045,8 +14001,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_708 = (uint64_t)(uintptr_t)pSurfaceFormats;
-    memcpy((*streamPtrPtr), &cgen_var_708, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pSurfaceFormats;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSurfaceFormats)
@@ -13076,16 +14032,22 @@
         {
             fprintf(stderr, "fatal: pSurfaceFormats inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+        if ((pSurfaceFormatCount) != nullptr)
         {
-            unmarshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+            {
+                unmarshal_VkSurfaceFormatKHR(stream, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
+            }
         }
     }
-    if (pSurfaceFormats)
+    if ((pSurfaceFormatCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+        if (pSurfaceFormats)
         {
-            transform_fromhost_VkSurfaceFormatKHR(sResourceTracker, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+            {
+                transform_fromhost_VkSurfaceFormatKHR(sResourceTracker, (VkSurfaceFormatKHR*)(pSurfaceFormats + i));
+            }
         }
     }
     VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
@@ -13119,9 +14081,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_711;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_712;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -13133,7 +14095,10 @@
         *countPtr += 8;
         if (pPresentModes)
         {
-            *countPtr += (*(pPresentModeCount)) * sizeof(VkPresentModeKHR);
+            if ((pPresentModeCount) != nullptr)
+            {
+                *countPtr += (*(pPresentModeCount)) * sizeof(VkPresentModeKHR);
+            }
         }
     }
     uint32_t packetSize_vkGetPhysicalDeviceSurfacePresentModesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -13144,17 +14109,17 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfacePresentModesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfacePresentModesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_713;
-    *&cgen_var_713 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_713, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_714;
-    *&cgen_var_714 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_714, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_715 = (uint64_t)(uintptr_t)pPresentModeCount;
-    memcpy((*streamPtrPtr), &cgen_var_715, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPresentModeCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPresentModeCount)
@@ -13163,8 +14128,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_716 = (uint64_t)(uintptr_t)pPresentModes;
-    memcpy((*streamPtrPtr), &cgen_var_716, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pPresentModes;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPresentModes)
@@ -13248,7 +14213,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_719;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSwapchainCreateInfoKHR(sFeatureBits, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -13257,7 +14222,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_720;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateSwapchainKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -13268,14 +14233,14 @@
     memcpy(streamPtr, &opcode_vkCreateSwapchainKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateSwapchainKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_721;
-    *&cgen_var_721 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_721, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSwapchainCreateInfoKHR(stream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_722 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_722, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -13283,15 +14248,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_723;
-    *&cgen_var_723 = (uint64_t)((*pSwapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_723, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSwapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_724;
-    stream->read((uint64_t*)&cgen_var_724, 8);
-    stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_724, (VkSwapchainKHR*)pSwapchain, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_3, (VkSwapchainKHR*)pSwapchain, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSwapchainKHR_VkResult_return, sizeof(VkResult));
@@ -13335,9 +14300,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_725;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_726;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -13354,17 +14319,17 @@
     memcpy(streamPtr, &opcode_vkDestroySwapchainKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroySwapchainKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_727;
-    *&cgen_var_727 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_727, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_728;
-    *&cgen_var_728 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_728, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_729 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_729, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -13401,9 +14366,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_730;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_731;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -13429,17 +14394,17 @@
     memcpy(streamPtr, &opcode_vkGetSwapchainImagesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetSwapchainImagesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_733;
-    *&cgen_var_733 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_733, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_734;
-    *&cgen_var_734 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_734, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_735 = (uint64_t)(uintptr_t)pSwapchainImageCount;
-    memcpy((*streamPtrPtr), &cgen_var_735, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pSwapchainImageCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSwapchainImageCount)
@@ -13449,19 +14414,22 @@
     }
     /* is handle, possibly out */;
     // WARNING PTR CHECK
-    uint64_t cgen_var_736 = (uint64_t)(uintptr_t)pSwapchainImages;
-    memcpy((*streamPtrPtr), &cgen_var_736, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pSwapchainImages;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSwapchainImages)
     {
         if ((*(pSwapchainImageCount)))
         {
-            uint8_t* cgen_var_737_ptr = (uint8_t*)(*streamPtrPtr);
-            for (uint32_t k = 0; k < (*(pSwapchainImageCount)); ++k)
+            uint8_t* cgen_var_3_0_ptr = (uint8_t*)(*streamPtrPtr);
+            if ((pSwapchainImageCount) != nullptr)
             {
-                uint64_t tmpval = (uint64_t)(pSwapchainImages[k]);
-                memcpy(cgen_var_737_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                for (uint32_t k = 0; k < (*(pSwapchainImageCount)); ++k)
+                {
+                    uint64_t tmpval = (uint64_t)(pSwapchainImages[k]);
+                    memcpy(cgen_var_3_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                }
             }
             *streamPtrPtr += 8 * (*(pSwapchainImageCount));
         }
@@ -13489,10 +14457,10 @@
         }
         if ((*(pSwapchainImageCount)))
         {
-            uint64_t* cgen_var_740;
-            stream->alloc((void**)&cgen_var_740, (*(pSwapchainImageCount)) * 8);
-            stream->read((uint64_t*)cgen_var_740, (*(pSwapchainImageCount)) * 8);
-            stream->handleMapping()->mapHandles_u64_VkImage(cgen_var_740, (VkImage*)pSwapchainImages, (*(pSwapchainImageCount)));
+            uint64_t* cgen_var_5_0;
+            stream->alloc((void**)&cgen_var_5_0, (*(pSwapchainImageCount)) * 8);
+            stream->read((uint64_t*)cgen_var_5_0, (*(pSwapchainImageCount)) * 8);
+            stream->handleMapping()->mapHandles_u64_VkImage(cgen_var_5_0, (VkImage*)pSwapchainImages, (*(pSwapchainImageCount)));
         }
     }
     VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
@@ -13534,14 +14502,14 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_741;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_742;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint64_t);
-        uint64_t cgen_var_743;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_744;
+        uint64_t cgen_var_3;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -13553,23 +14521,23 @@
     memcpy(streamPtr, &opcode_vkAcquireNextImageKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkAcquireNextImageKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_745;
-    *&cgen_var_745 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_745, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_746;
-    *&cgen_var_746 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_746, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint64_t*)&local_timeout, sizeof(uint64_t));
     *streamPtrPtr += sizeof(uint64_t);
-    uint64_t cgen_var_747;
-    *&cgen_var_747 = get_host_u64_VkSemaphore((*&local_semaphore));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_747, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkSemaphore((*&local_semaphore));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_748;
-    *&cgen_var_748 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_748, 1 * 8);
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_3, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)pImageIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -13612,7 +14580,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_749;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPresentInfoKHR(sFeatureBits, (VkPresentInfoKHR*)(local_pPresentInfo), countPtr);
     }
@@ -13624,9 +14592,9 @@
     memcpy(streamPtr, &opcode_vkQueuePresentKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueuePresentKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_750;
-    *&cgen_var_750 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_750, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPresentInfoKHR(stream, (VkPresentInfoKHR*)(local_pPresentInfo), streamPtrPtr);
     VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
@@ -13656,7 +14624,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_751;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDeviceGroupPresentCapabilitiesKHR(sFeatureBits, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities), countPtr);
     }
@@ -13668,9 +14636,9 @@
     memcpy(streamPtr, &opcode_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceGroupPresentCapabilitiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_752;
-    *&cgen_var_752 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_752, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities), streamPtrPtr);
     unmarshal_VkDeviceGroupPresentCapabilitiesKHR(stream, (VkDeviceGroupPresentCapabilitiesKHR*)(pDeviceGroupPresentCapabilities));
@@ -13708,9 +14676,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_753;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_754;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -13727,17 +14695,17 @@
     memcpy(streamPtr, &opcode_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceGroupSurfacePresentModesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_755;
-    *&cgen_var_755 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_755, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_756;
-    *&cgen_var_756 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_756, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_757 = (uint64_t)(uintptr_t)pModes;
-    memcpy((*streamPtrPtr), &cgen_var_757, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pModes;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pModes)
@@ -13787,9 +14755,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_759;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_760;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -13801,9 +14769,12 @@
         *countPtr += 8;
         if (pRects)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
+            if ((pRectCount) != nullptr)
             {
-                count_VkRect2D(sFeatureBits, (VkRect2D*)(pRects + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
+                {
+                    count_VkRect2D(sFeatureBits, (VkRect2D*)(pRects + i), countPtr);
+                }
             }
         }
     }
@@ -13815,17 +14786,17 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDevicePresentRectanglesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_761;
-    *&cgen_var_761 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_761, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_762;
-    *&cgen_var_762 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_762, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_763 = (uint64_t)(uintptr_t)pRectCount;
-    memcpy((*streamPtrPtr), &cgen_var_763, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pRectCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pRectCount)
@@ -13834,8 +14805,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_764 = (uint64_t)(uintptr_t)pRects;
-    memcpy((*streamPtrPtr), &cgen_var_764, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pRects;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pRects)
@@ -13865,16 +14836,22 @@
         {
             fprintf(stderr, "fatal: pRects inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
+        if ((pRectCount) != nullptr)
         {
-            unmarshal_VkRect2D(stream, (VkRect2D*)(pRects + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
+            {
+                unmarshal_VkRect2D(stream, (VkRect2D*)(pRects + i));
+            }
         }
     }
-    if (pRects)
+    if ((pRectCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
+        if (pRects)
         {
-            transform_fromhost_VkRect2D(sResourceTracker, (VkRect2D*)(pRects + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pRectCount)); ++i)
+            {
+                transform_fromhost_VkRect2D(sResourceTracker, (VkRect2D*)(pRects + i));
+            }
         }
     }
     VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
@@ -13916,7 +14893,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_767;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkAcquireNextImageInfoKHR(sFeatureBits, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo), countPtr);
         *countPtr += sizeof(uint32_t);
@@ -13929,9 +14906,9 @@
     memcpy(streamPtr, &opcode_vkAcquireNextImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkAcquireNextImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_768;
-    *&cgen_var_768 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_768, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkAcquireNextImageInfoKHR(stream, (VkAcquireNextImageInfoKHR*)(local_pAcquireInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (uint32_t*)pImageIndex, sizeof(uint32_t));
@@ -13967,7 +14944,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_769;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -13979,9 +14956,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkDisplayPropertiesKHR(sFeatureBits, (VkDisplayPropertiesKHR*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkDisplayPropertiesKHR(sFeatureBits, (VkDisplayPropertiesKHR*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -13993,13 +14973,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceDisplayPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceDisplayPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_770;
-    *&cgen_var_770 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_770, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_771 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_771, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -14008,8 +14988,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_772 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_772, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -14039,16 +15019,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkDisplayPropertiesKHR(stream, (VkDisplayPropertiesKHR*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkDisplayPropertiesKHR(sResourceTracker, (VkDisplayPropertiesKHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkDisplayPropertiesKHR(sResourceTracker, (VkDisplayPropertiesKHR*)(pProperties + i));
+            }
         }
     }
     VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
@@ -14079,7 +15065,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_775;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -14091,9 +15077,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkDisplayPlanePropertiesKHR(sFeatureBits, (VkDisplayPlanePropertiesKHR*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkDisplayPlanePropertiesKHR(sFeatureBits, (VkDisplayPlanePropertiesKHR*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -14105,13 +15094,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceDisplayPlanePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_776;
-    *&cgen_var_776 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_776, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_777 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_777, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -14120,8 +15109,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_778 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_778, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -14151,16 +15140,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkDisplayPlanePropertiesKHR(stream, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkDisplayPlanePropertiesKHR(sResourceTracker, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkDisplayPlanePropertiesKHR(sResourceTracker, (VkDisplayPlanePropertiesKHR*)(pProperties + i));
+            }
         }
     }
     VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
@@ -14194,7 +15189,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_781;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         // WARNING PTR CHECK
@@ -14221,15 +15216,15 @@
     memcpy(streamPtr, &opcode_vkGetDisplayPlaneSupportedDisplaysKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDisplayPlaneSupportedDisplaysKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_783;
-    *&cgen_var_783 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_783, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_planeIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_784 = (uint64_t)(uintptr_t)pDisplayCount;
-    memcpy((*streamPtrPtr), &cgen_var_784, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pDisplayCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pDisplayCount)
@@ -14239,19 +15234,22 @@
     }
     /* is handle, possibly out */;
     // WARNING PTR CHECK
-    uint64_t cgen_var_785 = (uint64_t)(uintptr_t)pDisplays;
-    memcpy((*streamPtrPtr), &cgen_var_785, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pDisplays;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pDisplays)
     {
         if ((*(pDisplayCount)))
         {
-            uint8_t* cgen_var_786_ptr = (uint8_t*)(*streamPtrPtr);
-            for (uint32_t k = 0; k < (*(pDisplayCount)); ++k)
+            uint8_t* cgen_var_2_0_ptr = (uint8_t*)(*streamPtrPtr);
+            if ((pDisplayCount) != nullptr)
             {
-                uint64_t tmpval = (uint64_t)(pDisplays[k]);
-                memcpy(cgen_var_786_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                for (uint32_t k = 0; k < (*(pDisplayCount)); ++k)
+                {
+                    uint64_t tmpval = (uint64_t)(pDisplays[k]);
+                    memcpy(cgen_var_2_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                }
             }
             *streamPtrPtr += 8 * (*(pDisplayCount));
         }
@@ -14279,10 +15277,10 @@
         }
         if ((*(pDisplayCount)))
         {
-            uint64_t* cgen_var_789;
-            stream->alloc((void**)&cgen_var_789, (*(pDisplayCount)) * 8);
-            stream->read((uint64_t*)cgen_var_789, (*(pDisplayCount)) * 8);
-            stream->handleMapping()->mapHandles_u64_VkDisplayKHR(cgen_var_789, (VkDisplayKHR*)pDisplays, (*(pDisplayCount)));
+            uint64_t* cgen_var_4_0;
+            stream->alloc((void**)&cgen_var_4_0, (*(pDisplayCount)) * 8);
+            stream->read((uint64_t*)cgen_var_4_0, (*(pDisplayCount)) * 8);
+            stream->handleMapping()->mapHandles_u64_VkDisplayKHR(cgen_var_4_0, (VkDisplayKHR*)pDisplays, (*(pDisplayCount)));
         }
     }
     VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
@@ -14316,9 +15314,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_790;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_791;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -14330,9 +15328,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkDisplayModePropertiesKHR(sFeatureBits, (VkDisplayModePropertiesKHR*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkDisplayModePropertiesKHR(sFeatureBits, (VkDisplayModePropertiesKHR*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -14344,17 +15345,17 @@
     memcpy(streamPtr, &opcode_vkGetDisplayModePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDisplayModePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_792;
-    *&cgen_var_792 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_792, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_793;
-    *&cgen_var_793 = get_host_u64_VkDisplayKHR((*&local_display));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_793, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayKHR((*&local_display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_794 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_794, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -14363,8 +15364,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_795 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_795, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -14394,16 +15395,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkDisplayModePropertiesKHR(stream, (VkDisplayModePropertiesKHR*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkDisplayModePropertiesKHR(sResourceTracker, (VkDisplayModePropertiesKHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkDisplayModePropertiesKHR(sResourceTracker, (VkDisplayModePropertiesKHR*)(pProperties + i));
+            }
         }
     }
     VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
@@ -14461,9 +15468,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_798;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_799;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkDisplayModeCreateInfoKHR(sFeatureBits, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -14472,7 +15479,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_800;
+        uint64_t cgen_var_2;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDisplayModeKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -14483,18 +15490,18 @@
     memcpy(streamPtr, &opcode_vkCreateDisplayModeKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDisplayModeKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_801;
-    *&cgen_var_801 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_801, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_802;
-    *&cgen_var_802 = get_host_u64_VkDisplayKHR((*&local_display));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_802, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayKHR((*&local_display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDisplayModeCreateInfoKHR(stream, (VkDisplayModeCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_803 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_803, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -14502,15 +15509,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_804;
-    *&cgen_var_804 = (uint64_t)((*pMode));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_804, 8);
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = (uint64_t)((*pMode));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_3, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_805;
-    stream->read((uint64_t*)&cgen_var_805, 8);
-    stream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_805, (VkDisplayModeKHR*)pMode, 1);
+    uint64_t cgen_var_4;
+    stream->read((uint64_t*)&cgen_var_4, 8);
+    stream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_4, (VkDisplayModeKHR*)pMode, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDisplayModeKHR_VkResult_return, sizeof(VkResult));
@@ -14545,9 +15552,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_806;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_807;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         count_VkDisplayPlaneCapabilitiesKHR(sFeatureBits, (VkDisplayPlaneCapabilitiesKHR*)(pCapabilities), countPtr);
@@ -14560,13 +15567,13 @@
     memcpy(streamPtr, &opcode_vkGetDisplayPlaneCapabilitiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDisplayPlaneCapabilitiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_808;
-    *&cgen_var_808 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_808, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_809;
-    *&cgen_var_809 = get_host_u64_VkDisplayModeKHR((*&local_mode));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_809, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayModeKHR((*&local_mode));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_planeIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -14628,7 +15635,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_810;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDisplaySurfaceCreateInfoKHR(sFeatureBits, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -14637,7 +15644,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_811;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDisplayPlaneSurfaceKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -14648,14 +15655,14 @@
     memcpy(streamPtr, &opcode_vkCreateDisplayPlaneSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDisplayPlaneSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_812;
-    *&cgen_var_812 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_812, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDisplaySurfaceCreateInfoKHR(stream, (VkDisplaySurfaceCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_813 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_813, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -14663,14 +15670,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_814;
-    *&cgen_var_814 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_814, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_815;
-    stream->read((uint64_t*)&cgen_var_815, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_815, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDisplayPlaneSurfaceKHR_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -14734,7 +15741,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_816;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((swapchainCount)); ++i)
@@ -14760,9 +15767,9 @@
     memcpy(streamPtr, &opcode_vkCreateSharedSwapchainsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateSharedSwapchainsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_818;
-    *&cgen_var_818 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_818, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_swapchainCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -14771,8 +15778,8 @@
         reservedmarshal_VkSwapchainCreateInfoKHR(stream, (VkSwapchainCreateInfoKHR*)(local_pCreateInfos + i), streamPtrPtr);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_819 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_819, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -14782,21 +15789,21 @@
     /* is handle, possibly out */;
     if (((swapchainCount)))
     {
-        uint8_t* cgen_var_820_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_2_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((swapchainCount)); ++k)
         {
             uint64_t tmpval = (uint64_t)(pSwapchains[k]);
-            memcpy(cgen_var_820_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_2_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((swapchainCount));
     }
     /* is handle, possibly out */;
     if (((swapchainCount)))
     {
-        uint64_t* cgen_var_821;
-        stream->alloc((void**)&cgen_var_821, ((swapchainCount)) * 8);
-        stream->read((uint64_t*)cgen_var_821, ((swapchainCount)) * 8);
-        stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_821, (VkSwapchainKHR*)pSwapchains, ((swapchainCount)));
+        uint64_t* cgen_var_3;
+        stream->alloc((void**)&cgen_var_3, ((swapchainCount)) * 8);
+        stream->read((uint64_t*)cgen_var_3, ((swapchainCount)) * 8);
+        stream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_3, (VkSwapchainKHR*)pSwapchains, ((swapchainCount)));
     }
     VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSharedSwapchainsKHR_VkResult_return, sizeof(VkResult));
@@ -14852,7 +15859,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_822;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkXlibSurfaceCreateInfoKHR(sFeatureBits, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -14861,7 +15868,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_823;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateXlibSurfaceKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -14872,14 +15879,14 @@
     memcpy(streamPtr, &opcode_vkCreateXlibSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateXlibSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_824;
-    *&cgen_var_824 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_824, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkXlibSurfaceCreateInfoKHR(stream, (VkXlibSurfaceCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_825 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_825, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -14887,14 +15894,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_826;
-    *&cgen_var_826 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_826, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_827;
-    stream->read((uint64_t*)&cgen_var_827, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_827, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateXlibSurfaceKHR_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -14928,7 +15935,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_828;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(Display);
@@ -14942,9 +15949,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceXlibPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceXlibPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_829;
-    *&cgen_var_829 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_829, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -15007,7 +16014,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_830;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkXcbSurfaceCreateInfoKHR(sFeatureBits, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -15016,7 +16023,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_831;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateXcbSurfaceKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -15027,14 +16034,14 @@
     memcpy(streamPtr, &opcode_vkCreateXcbSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateXcbSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_832;
-    *&cgen_var_832 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_832, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkXcbSurfaceCreateInfoKHR(stream, (VkXcbSurfaceCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_833 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_833, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -15042,14 +16049,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_834;
-    *&cgen_var_834 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_834, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_835;
-    stream->read((uint64_t*)&cgen_var_835, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_835, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateXcbSurfaceKHR_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -15083,7 +16090,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_836;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(xcb_connection_t);
@@ -15097,9 +16104,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceXcbPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceXcbPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_837;
-    *&cgen_var_837 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_837, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -15162,7 +16169,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_838;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkWaylandSurfaceCreateInfoKHR(sFeatureBits, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -15171,7 +16178,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_839;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateWaylandSurfaceKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -15182,14 +16189,14 @@
     memcpy(streamPtr, &opcode_vkCreateWaylandSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateWaylandSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_840;
-    *&cgen_var_840 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_840, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkWaylandSurfaceCreateInfoKHR(stream, (VkWaylandSurfaceCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_841 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_841, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -15197,14 +16204,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_842;
-    *&cgen_var_842 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_842, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_843;
-    stream->read((uint64_t*)&cgen_var_843, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_843, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateWaylandSurfaceKHR_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -15235,7 +16242,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_844;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(wl_display);
@@ -15248,9 +16255,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceWaylandPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceWaylandPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_845;
-    *&cgen_var_845 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_845, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -15270,155 +16277,6 @@
 }
 
 #endif
-#ifdef VK_KHR_mir_surface
-VkResult VkEncoder::vkCreateMirSurfaceKHR(
-    VkInstance instance,
-    const VkMirSurfaceCreateInfoKHR* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkSurfaceKHR* pSurface,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkInstance local_instance;
-    VkMirSurfaceCreateInfoKHR* local_pCreateInfo;
-    VkAllocationCallbacks* local_pAllocator;
-    local_instance = instance;
-    local_pCreateInfo = nullptr;
-    if (pCreateInfo)
-    {
-        local_pCreateInfo = (VkMirSurfaceCreateInfoKHR*)pool->alloc(sizeof(const VkMirSurfaceCreateInfoKHR));
-        deepcopy_VkMirSurfaceCreateInfoKHR(pool, pCreateInfo, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
-    }
-    local_pAllocator = nullptr;
-    if (pAllocator)
-    {
-        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
-        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    local_pAllocator = nullptr;
-    if (local_pCreateInfo)
-    {
-        transform_tohost_VkMirSurfaceCreateInfoKHR(sResourceTracker, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo));
-    }
-    if (local_pAllocator)
-    {
-        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_846;
-        *countPtr += 1 * 8;
-        count_VkMirSurfaceCreateInfoKHR(sFeatureBits, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo), countPtr);
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (local_pAllocator)
-        {
-            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
-        }
-        uint64_t cgen_var_847;
-        *countPtr += 8;
-    }
-    uint32_t packetSize_vkCreateMirSurfaceKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateMirSurfaceKHR);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkCreateMirSurfaceKHR = OP_vkCreateMirSurfaceKHR;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkCreateMirSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkCreateMirSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_848;
-    *&cgen_var_848 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_848, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkMirSurfaceCreateInfoKHR(stream, (VkMirSurfaceCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_849 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_849, 8);
-    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (local_pAllocator)
-    {
-        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
-    }
-    /* is handle, possibly out */;
-    uint64_t cgen_var_850;
-    *&cgen_var_850 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_850, 8);
-    *streamPtrPtr += 8;
-    /* is handle, possibly out */;
-    uint64_t cgen_var_851;
-    stream->read((uint64_t*)&cgen_var_851, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_851, (VkSurfaceKHR*)pSurface, 1);
-    VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
-    stream->read(&vkCreateMirSurfaceKHR_VkResult_return, sizeof(VkResult));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkCreateMirSurfaceKHR_VkResult_return;
-}
-
-VkBool32 VkEncoder::vkGetPhysicalDeviceMirPresentationSupportKHR(
-    VkPhysicalDevice physicalDevice,
-    uint32_t queueFamilyIndex,
-    MirConnection* connection,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkPhysicalDevice local_physicalDevice;
-    uint32_t local_queueFamilyIndex;
-    local_physicalDevice = physicalDevice;
-    local_queueFamilyIndex = queueFamilyIndex;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_852;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(uint32_t);
-        *countPtr += sizeof(MirConnection);
-    }
-    uint32_t packetSize_vkGetPhysicalDeviceMirPresentationSupportKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceMirPresentationSupportKHR);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetPhysicalDeviceMirPresentationSupportKHR = OP_vkGetPhysicalDeviceMirPresentationSupportKHR;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceMirPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceMirPresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_853;
-    *&cgen_var_853 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_853, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
-    *streamPtrPtr += sizeof(uint32_t);
-    memcpy(*streamPtrPtr, (MirConnection*)connection, sizeof(MirConnection));
-    *streamPtrPtr += sizeof(MirConnection);
-    stream->read((MirConnection*)connection, sizeof(MirConnection));
-    VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
-    stream->read(&vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return, sizeof(VkBool32));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
-}
-
-#endif
 #ifdef VK_KHR_android_surface
 VkResult VkEncoder::vkCreateAndroidSurfaceKHR(
     VkInstance instance,
@@ -15460,7 +16318,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_854;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkAndroidSurfaceCreateInfoKHR(sFeatureBits, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -15469,7 +16327,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_855;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateAndroidSurfaceKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -15480,14 +16338,14 @@
     memcpy(streamPtr, &opcode_vkCreateAndroidSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateAndroidSurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_856;
-    *&cgen_var_856 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_856, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkAndroidSurfaceCreateInfoKHR(stream, (VkAndroidSurfaceCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_857 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_857, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -15495,14 +16353,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_858;
-    *&cgen_var_858 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_858, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_859;
-    stream->read((uint64_t*)&cgen_var_859, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_859, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateAndroidSurfaceKHR_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -15557,7 +16415,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_860;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkWin32SurfaceCreateInfoKHR(sFeatureBits, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -15566,7 +16424,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_861;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateWin32SurfaceKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -15577,14 +16435,14 @@
     memcpy(streamPtr, &opcode_vkCreateWin32SurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateWin32SurfaceKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_862;
-    *&cgen_var_862 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_862, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkWin32SurfaceCreateInfoKHR(stream, (VkWin32SurfaceCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_863 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_863, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -15592,14 +16450,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_864;
-    *&cgen_var_864 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_864, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_865;
-    stream->read((uint64_t*)&cgen_var_865, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_865, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateWin32SurfaceKHR_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -15629,7 +16487,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_866;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -15641,9 +16499,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceWin32PresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceWin32PresentationSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_867;
-    *&cgen_var_867 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_867, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -15680,7 +16538,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_868;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceFeatures2(sFeatureBits, (VkPhysicalDeviceFeatures2*)(pFeatures), countPtr);
     }
@@ -15692,9 +16550,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceFeatures2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceFeatures2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_869;
-    *&cgen_var_869 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_869, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures), streamPtrPtr);
     unmarshal_VkPhysicalDeviceFeatures2(stream, (VkPhysicalDeviceFeatures2*)(pFeatures));
@@ -15726,7 +16584,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_870;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceProperties2(sFeatureBits, (VkPhysicalDeviceProperties2*)(pProperties), countPtr);
     }
@@ -15738,9 +16596,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_871;
-    *&cgen_var_871 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_871, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties), streamPtrPtr);
     unmarshal_VkPhysicalDeviceProperties2(stream, (VkPhysicalDeviceProperties2*)(pProperties));
@@ -15776,7 +16634,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_872;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         count_VkFormatProperties2(sFeatureBits, (VkFormatProperties2*)(pFormatProperties), countPtr);
@@ -15789,9 +16647,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceFormatProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceFormatProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_873;
-    *&cgen_var_873 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_873, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -15837,7 +16695,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_874;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceImageFormatInfo2(sFeatureBits, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo), countPtr);
         count_VkImageFormatProperties2(sFeatureBits, (VkImageFormatProperties2*)(pImageFormatProperties), countPtr);
@@ -15850,9 +16708,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceImageFormatProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceImageFormatProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_875;
-    *&cgen_var_875 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_875, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceImageFormatInfo2(stream, (VkPhysicalDeviceImageFormatInfo2*)(local_pImageFormatInfo), streamPtrPtr);
     reservedmarshal_VkImageFormatProperties2(stream, (VkImageFormatProperties2*)(pImageFormatProperties), streamPtrPtr);
@@ -15889,7 +16747,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_876;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -15901,9 +16759,12 @@
         *countPtr += 8;
         if (pQueueFamilyProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            if ((pQueueFamilyPropertyCount) != nullptr)
             {
-                count_VkQueueFamilyProperties2(sFeatureBits, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+                {
+                    count_VkQueueFamilyProperties2(sFeatureBits, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i), countPtr);
+                }
             }
         }
     }
@@ -15915,13 +16776,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceQueueFamilyProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceQueueFamilyProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_877;
-    *&cgen_var_877 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_877, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_878 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_878, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pQueueFamilyPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pQueueFamilyPropertyCount)
@@ -15930,8 +16791,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_879 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
-    memcpy((*streamPtrPtr), &cgen_var_879, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pQueueFamilyProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pQueueFamilyProperties)
@@ -15961,16 +16822,22 @@
         {
             fprintf(stderr, "fatal: pQueueFamilyProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        if ((pQueueFamilyPropertyCount) != nullptr)
         {
-            unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            {
+                unmarshal_VkQueueFamilyProperties2(stream, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            }
         }
     }
-    if (pQueueFamilyProperties)
+    if ((pQueueFamilyPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+        if (pQueueFamilyProperties)
         {
-            transform_fromhost_VkQueueFamilyProperties2(sResourceTracker, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pQueueFamilyPropertyCount)); ++i)
+            {
+                transform_fromhost_VkQueueFamilyProperties2(sResourceTracker, (VkQueueFamilyProperties2*)(pQueueFamilyProperties + i));
+            }
         }
     }
     ++encodeCount;;
@@ -15997,7 +16864,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_882;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceMemoryProperties2(sFeatureBits, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties), countPtr);
     }
@@ -16009,9 +16876,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceMemoryProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceMemoryProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_883;
-    *&cgen_var_883 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_883, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties), streamPtrPtr);
     unmarshal_VkPhysicalDeviceMemoryProperties2(stream, (VkPhysicalDeviceMemoryProperties2*)(pMemoryProperties));
@@ -16057,7 +16924,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_884;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceSparseImageFormatInfo2(sFeatureBits, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo), countPtr);
         // WARNING PTR CHECK
@@ -16070,9 +16937,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkSparseImageFormatProperties2(sFeatureBits, (VkSparseImageFormatProperties2*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkSparseImageFormatProperties2(sFeatureBits, (VkSparseImageFormatProperties2*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -16084,14 +16954,14 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSparseImageFormatProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSparseImageFormatProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_885;
-    *&cgen_var_885 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_885, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceSparseImageFormatInfo2(stream, (VkPhysicalDeviceSparseImageFormatInfo2*)(local_pFormatInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_886 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_886, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -16100,8 +16970,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_887 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_887, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -16131,16 +17001,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkSparseImageFormatProperties2(stream, (VkSparseImageFormatProperties2*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkSparseImageFormatProperties2(sResourceTracker, (VkSparseImageFormatProperties2*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkSparseImageFormatProperties2(sResourceTracker, (VkSparseImageFormatProperties2*)(pProperties + i));
+            }
         }
     }
     ++encodeCount;;
@@ -16178,7 +17054,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_890;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -16193,9 +17069,9 @@
     memcpy(streamPtr, &opcode_vkGetDeviceGroupPeerMemoryFeaturesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDeviceGroupPeerMemoryFeaturesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_891;
-    *&cgen_var_891 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_891, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_heapIndex, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -16232,7 +17108,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_892;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -16245,9 +17121,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetDeviceMaskKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_893;
-        *&cgen_var_893 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_893, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_deviceMask, sizeof(uint32_t));
@@ -16293,7 +17169,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_894;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -16311,9 +17187,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDispatchBaseKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_895;
-        *&cgen_var_895 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_895, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_baseGroupX, sizeof(uint32_t));
@@ -16361,9 +17237,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_896;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_897;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkCommandPoolTrimFlags);
     }
@@ -16375,13 +17251,13 @@
     memcpy(streamPtr, &opcode_vkTrimCommandPoolKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkTrimCommandPoolKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_898;
-    *&cgen_var_898 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_898, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_899;
-    *&cgen_var_899 = get_host_u64_VkCommandPool((*&local_commandPool));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_899, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkCommandPool((*&local_commandPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkCommandPoolTrimFlags*)&local_flags, sizeof(VkCommandPoolTrimFlags));
     *streamPtrPtr += sizeof(VkCommandPoolTrimFlags);
@@ -16413,7 +17289,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_900;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -16425,9 +17301,12 @@
         *countPtr += 8;
         if (pPhysicalDeviceGroupProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+            if ((pPhysicalDeviceGroupCount) != nullptr)
             {
-                count_VkPhysicalDeviceGroupProperties(sFeatureBits, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+                {
+                    count_VkPhysicalDeviceGroupProperties(sFeatureBits, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i), countPtr);
+                }
             }
         }
     }
@@ -16439,13 +17318,13 @@
     memcpy(streamPtr, &opcode_vkEnumeratePhysicalDeviceGroupsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkEnumeratePhysicalDeviceGroupsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_901;
-    *&cgen_var_901 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_901, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_902 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
-    memcpy((*streamPtrPtr), &cgen_var_902, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPhysicalDeviceGroupCount)
@@ -16454,8 +17333,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_903 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
-    memcpy((*streamPtrPtr), &cgen_var_903, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPhysicalDeviceGroupProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPhysicalDeviceGroupProperties)
@@ -16485,16 +17364,22 @@
         {
             fprintf(stderr, "fatal: pPhysicalDeviceGroupProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+        if ((pPhysicalDeviceGroupCount) != nullptr)
         {
-            unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+            {
+                unmarshal_VkPhysicalDeviceGroupProperties(stream, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            }
         }
     }
-    if (pPhysicalDeviceGroupProperties)
+    if ((pPhysicalDeviceGroupCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+        if (pPhysicalDeviceGroupProperties)
         {
-            transform_fromhost_VkPhysicalDeviceGroupProperties(sResourceTracker, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPhysicalDeviceGroupCount)); ++i)
+            {
+                transform_fromhost_VkPhysicalDeviceGroupProperties(sResourceTracker, (VkPhysicalDeviceGroupProperties*)(pPhysicalDeviceGroupProperties + i));
+            }
         }
     }
     VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
@@ -16539,7 +17424,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_906;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceExternalBufferInfo(sFeatureBits, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo), countPtr);
         count_VkExternalBufferProperties(sFeatureBits, (VkExternalBufferProperties*)(pExternalBufferProperties), countPtr);
@@ -16552,9 +17437,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceExternalBufferPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceExternalBufferPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_907;
-    *&cgen_var_907 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_907, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceExternalBufferInfo(stream, (VkPhysicalDeviceExternalBufferInfo*)(local_pExternalBufferInfo), streamPtrPtr);
     reservedmarshal_VkExternalBufferProperties(stream, (VkExternalBufferProperties*)(pExternalBufferProperties), streamPtrPtr);
@@ -16604,7 +17489,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_908;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkMemoryGetWin32HandleInfoKHR(sFeatureBits, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo), countPtr);
         *countPtr += sizeof(HANDLE);
@@ -16617,9 +17502,9 @@
     memcpy(streamPtr, &opcode_vkGetMemoryWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_909;
-    *&cgen_var_909 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_909, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkMemoryGetWin32HandleInfoKHR(stream, (VkMemoryGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (HANDLE*)pHandle, sizeof(HANDLE));
@@ -16658,7 +17543,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_910;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
         *countPtr += sizeof(HANDLE);
@@ -16672,9 +17557,9 @@
     memcpy(streamPtr, &opcode_vkGetMemoryWin32HandlePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryWin32HandlePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_911;
-    *&cgen_var_911 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_911, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     *streamPtrPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
@@ -16727,7 +17612,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_912;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkMemoryGetFdInfoKHR(sFeatureBits, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo), countPtr);
         *countPtr += sizeof(int);
@@ -16740,9 +17625,9 @@
     memcpy(streamPtr, &opcode_vkGetMemoryFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_913;
-    *&cgen_var_913 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_913, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkMemoryGetFdInfoKHR(stream, (VkMemoryGetFdInfoKHR*)(local_pGetFdInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (int*)pFd, sizeof(int));
@@ -16781,7 +17666,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_914;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
         *countPtr += sizeof(int);
@@ -16795,9 +17680,9 @@
     memcpy(streamPtr, &opcode_vkGetMemoryFdPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryFdPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_915;
-    *&cgen_var_915 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_915, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     *streamPtrPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
@@ -16852,7 +17737,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_916;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceExternalSemaphoreInfo(sFeatureBits, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo), countPtr);
         count_VkExternalSemaphoreProperties(sFeatureBits, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties), countPtr);
@@ -16865,9 +17750,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_917;
-    *&cgen_var_917 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_917, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceExternalSemaphoreInfo(stream, (VkPhysicalDeviceExternalSemaphoreInfo*)(local_pExternalSemaphoreInfo), streamPtrPtr);
     reservedmarshal_VkExternalSemaphoreProperties(stream, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties), streamPtrPtr);
@@ -16876,6 +17761,7 @@
     {
         transform_fromhost_VkExternalSemaphoreProperties(sResourceTracker, (VkExternalSemaphoreProperties*)(pExternalSemaphoreProperties));
     }
+    sResourceTracker->on_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(this, physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
     {
@@ -16915,7 +17801,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_918;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImportSemaphoreWin32HandleInfoKHR(sFeatureBits, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo), countPtr);
     }
@@ -16927,9 +17813,9 @@
     memcpy(streamPtr, &opcode_vkImportSemaphoreWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkImportSemaphoreWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_919;
-    *&cgen_var_919 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_919, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImportSemaphoreWin32HandleInfoKHR(stream, (VkImportSemaphoreWin32HandleInfoKHR*)(local_pImportSemaphoreWin32HandleInfo), streamPtrPtr);
     VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
@@ -16971,7 +17857,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_920;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSemaphoreGetWin32HandleInfoKHR(sFeatureBits, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo), countPtr);
         *countPtr += sizeof(HANDLE);
@@ -16984,9 +17870,9 @@
     memcpy(streamPtr, &opcode_vkGetSemaphoreWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetSemaphoreWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_921;
-    *&cgen_var_921 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_921, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSemaphoreGetWin32HandleInfoKHR(stream, (VkSemaphoreGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (HANDLE*)pHandle, sizeof(HANDLE));
@@ -17032,7 +17918,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_922;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImportSemaphoreFdInfoKHR(sFeatureBits, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo), countPtr);
     }
@@ -17044,9 +17930,9 @@
     memcpy(streamPtr, &opcode_vkImportSemaphoreFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkImportSemaphoreFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_923;
-    *&cgen_var_923 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_923, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImportSemaphoreFdInfoKHR(stream, (VkImportSemaphoreFdInfoKHR*)(local_pImportSemaphoreFdInfo), streamPtrPtr);
     VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
@@ -17088,7 +17974,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_924;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSemaphoreGetFdInfoKHR(sFeatureBits, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo), countPtr);
         *countPtr += sizeof(int);
@@ -17101,9 +17987,9 @@
     memcpy(streamPtr, &opcode_vkGetSemaphoreFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetSemaphoreFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_925;
-    *&cgen_var_925 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_925, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSemaphoreGetFdInfoKHR(stream, (VkSemaphoreGetFdInfoKHR*)(local_pGetFdInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (int*)pFd, sizeof(int));
@@ -17167,10 +18053,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_926;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineBindPoint);
-        uint64_t cgen_var_927;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -17188,16 +18074,16 @@
     memcpy(streamPtr, &packetSize_vkCmdPushDescriptorSetKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_928;
-        *&cgen_var_928 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_928, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
     *streamPtrPtr += sizeof(VkPipelineBindPoint);
-    uint64_t cgen_var_929;
-    *&cgen_var_929 = get_host_u64_VkPipelineLayout((*&local_layout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_929, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipelineLayout((*&local_layout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_set, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -17243,11 +18129,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_930;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_931;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_932;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         // WARNING PTR CHECK
@@ -17266,24 +18152,24 @@
     memcpy(streamPtr, &packetSize_vkCmdPushDescriptorSetWithTemplateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_933;
-        *&cgen_var_933 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_933, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_934;
-    *&cgen_var_934 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_934, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_935;
-    *&cgen_var_935 = get_host_u64_VkPipelineLayout((*&local_layout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_935, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineLayout((*&local_layout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_set, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_936 = (uint64_t)(uintptr_t)local_pData;
-    memcpy((*streamPtrPtr), &cgen_var_936, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pData;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pData)
@@ -17301,6 +18187,8 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -17346,7 +18234,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_937;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDescriptorUpdateTemplateCreateInfo(sFeatureBits, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -17355,7 +18243,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_938;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDescriptorUpdateTemplateKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -17366,14 +18254,14 @@
     memcpy(streamPtr, &opcode_vkCreateDescriptorUpdateTemplateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDescriptorUpdateTemplateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_939;
-    *&cgen_var_939 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_939, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDescriptorUpdateTemplateCreateInfo(stream, (VkDescriptorUpdateTemplateCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_940 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_940, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -17381,15 +18269,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_941;
-    *&cgen_var_941 = (uint64_t)((*pDescriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_941, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pDescriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_942;
-    stream->read((uint64_t*)&cgen_var_942, 8);
-    stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_942, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDescriptorUpdateTemplate(&cgen_var_3, (VkDescriptorUpdateTemplate*)pDescriptorUpdateTemplate, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDescriptorUpdateTemplateKHR_VkResult_return, sizeof(VkResult));
@@ -17434,9 +18322,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_943;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_944;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -17453,17 +18341,17 @@
     memcpy(streamPtr, &opcode_vkDestroyDescriptorUpdateTemplateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyDescriptorUpdateTemplateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_945;
-    *&cgen_var_945 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_945, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_946;
-    *&cgen_var_946 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_946, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_947 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_947, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -17505,11 +18393,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_948;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_949;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_950;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -17526,21 +18414,21 @@
     memcpy(streamPtr, &opcode_vkUpdateDescriptorSetWithTemplateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkUpdateDescriptorSetWithTemplateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_951;
-    *&cgen_var_951 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_951, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_952;
-    *&cgen_var_952 = get_host_u64_VkDescriptorSet((*&local_descriptorSet));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_952, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorSet((*&local_descriptorSet));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_953;
-    *&cgen_var_953 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_953, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_954 = (uint64_t)(uintptr_t)local_pData;
-    memcpy((*streamPtrPtr), &cgen_var_954, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)local_pData;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pData)
@@ -17559,10 +18447,12 @@
 }
 
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
 VkResult VkEncoder::vkCreateRenderPass2KHR(
     VkDevice device,
-    const VkRenderPassCreateInfo2KHR* pCreateInfo,
+    const VkRenderPassCreateInfo2* pCreateInfo,
     const VkAllocationCallbacks* pAllocator,
     VkRenderPass* pRenderPass,
     uint32_t doLock)
@@ -17573,14 +18463,14 @@
     auto stream = mImpl->stream();
     auto pool = mImpl->pool();
     VkDevice local_device;
-    VkRenderPassCreateInfo2KHR* local_pCreateInfo;
+    VkRenderPassCreateInfo2* local_pCreateInfo;
     VkAllocationCallbacks* local_pAllocator;
     local_device = device;
     local_pCreateInfo = nullptr;
     if (pCreateInfo)
     {
-        local_pCreateInfo = (VkRenderPassCreateInfo2KHR*)pool->alloc(sizeof(const VkRenderPassCreateInfo2KHR));
-        deepcopy_VkRenderPassCreateInfo2KHR(pool, pCreateInfo, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
+        local_pCreateInfo = (VkRenderPassCreateInfo2*)pool->alloc(sizeof(const VkRenderPassCreateInfo2));
+        deepcopy_VkRenderPassCreateInfo2(pool, pCreateInfo, (VkRenderPassCreateInfo2*)(local_pCreateInfo));
     }
     local_pAllocator = nullptr;
     if (pAllocator)
@@ -17591,7 +18481,7 @@
     local_pAllocator = nullptr;
     if (local_pCreateInfo)
     {
-        transform_tohost_VkRenderPassCreateInfo2KHR(sResourceTracker, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo));
+        transform_tohost_VkRenderPassCreateInfo2(sResourceTracker, (VkRenderPassCreateInfo2*)(local_pCreateInfo));
     }
     if (local_pAllocator)
     {
@@ -17600,16 +18490,16 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_955;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        count_VkRenderPassCreateInfo2KHR(sFeatureBits, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo), countPtr);
+        count_VkRenderPassCreateInfo2(sFeatureBits, (VkRenderPassCreateInfo2*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
         *countPtr += 8;
         if (local_pAllocator)
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_956;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateRenderPass2KHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -17620,14 +18510,14 @@
     memcpy(streamPtr, &opcode_vkCreateRenderPass2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateRenderPass2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_957;
-    *&cgen_var_957 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_957, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkRenderPassCreateInfo2KHR(stream, (VkRenderPassCreateInfo2KHR*)(local_pCreateInfo), streamPtrPtr);
+    reservedmarshal_VkRenderPassCreateInfo2(stream, (VkRenderPassCreateInfo2*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_958 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_958, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -17635,14 +18525,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_959;
-    *&cgen_var_959 = (uint64_t)((*pRenderPass));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_959, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pRenderPass));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_960;
-    stream->read((uint64_t*)&cgen_var_960, 8);
-    stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_960, (VkRenderPass*)pRenderPass, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_3, (VkRenderPass*)pRenderPass, 1);
     VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateRenderPass2KHR_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -17658,7 +18548,7 @@
 void VkEncoder::vkCmdBeginRenderPass2KHR(
     VkCommandBuffer commandBuffer,
     const VkRenderPassBeginInfo* pRenderPassBegin,
-    const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
+    const VkSubpassBeginInfo* pSubpassBeginInfo,
     uint32_t doLock)
 {
     (void)doLock;
@@ -17668,7 +18558,7 @@
     auto pool = mImpl->pool();
     VkCommandBuffer local_commandBuffer;
     VkRenderPassBeginInfo* local_pRenderPassBegin;
-    VkSubpassBeginInfoKHR* local_pSubpassBeginInfo;
+    VkSubpassBeginInfo* local_pSubpassBeginInfo;
     local_commandBuffer = commandBuffer;
     local_pRenderPassBegin = nullptr;
     if (pRenderPassBegin)
@@ -17679,8 +18569,8 @@
     local_pSubpassBeginInfo = nullptr;
     if (pSubpassBeginInfo)
     {
-        local_pSubpassBeginInfo = (VkSubpassBeginInfoKHR*)pool->alloc(sizeof(const VkSubpassBeginInfoKHR));
-        deepcopy_VkSubpassBeginInfoKHR(pool, pSubpassBeginInfo, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
+        local_pSubpassBeginInfo = (VkSubpassBeginInfo*)pool->alloc(sizeof(const VkSubpassBeginInfo));
+        deepcopy_VkSubpassBeginInfo(pool, pSubpassBeginInfo, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
     }
     if (local_pRenderPassBegin)
     {
@@ -17688,15 +18578,15 @@
     }
     if (local_pSubpassBeginInfo)
     {
-        transform_tohost_VkSubpassBeginInfoKHR(sResourceTracker, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
+        transform_tohost_VkSubpassBeginInfo(sResourceTracker, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
     }
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_961;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkRenderPassBeginInfo(sFeatureBits, (VkRenderPassBeginInfo*)(local_pRenderPassBegin), countPtr);
-        count_VkSubpassBeginInfoKHR(sFeatureBits, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo), countPtr);
+        count_VkSubpassBeginInfo(sFeatureBits, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), countPtr);
     }
     uint32_t packetSize_vkCmdBeginRenderPass2KHR = 4 + 4 + count;
     if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBeginRenderPass2KHR -= 8;
@@ -17707,13 +18597,13 @@
     memcpy(streamPtr, &packetSize_vkCmdBeginRenderPass2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_962;
-        *&cgen_var_962 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_962, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkRenderPassBeginInfo(stream, (VkRenderPassBeginInfo*)(local_pRenderPassBegin), streamPtrPtr);
-    reservedmarshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo), streamPtrPtr);
+    reservedmarshal_VkSubpassBeginInfo(stream, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), streamPtrPtr);
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
     {
@@ -17725,8 +18615,8 @@
 
 void VkEncoder::vkCmdNextSubpass2KHR(
     VkCommandBuffer commandBuffer,
-    const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
-    const VkSubpassEndInfoKHR* pSubpassEndInfo,
+    const VkSubpassBeginInfo* pSubpassBeginInfo,
+    const VkSubpassEndInfo* pSubpassEndInfo,
     uint32_t doLock)
 {
     (void)doLock;
@@ -17735,36 +18625,36 @@
     auto stream = mImpl->stream();
     auto pool = mImpl->pool();
     VkCommandBuffer local_commandBuffer;
-    VkSubpassBeginInfoKHR* local_pSubpassBeginInfo;
-    VkSubpassEndInfoKHR* local_pSubpassEndInfo;
+    VkSubpassBeginInfo* local_pSubpassBeginInfo;
+    VkSubpassEndInfo* local_pSubpassEndInfo;
     local_commandBuffer = commandBuffer;
     local_pSubpassBeginInfo = nullptr;
     if (pSubpassBeginInfo)
     {
-        local_pSubpassBeginInfo = (VkSubpassBeginInfoKHR*)pool->alloc(sizeof(const VkSubpassBeginInfoKHR));
-        deepcopy_VkSubpassBeginInfoKHR(pool, pSubpassBeginInfo, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
+        local_pSubpassBeginInfo = (VkSubpassBeginInfo*)pool->alloc(sizeof(const VkSubpassBeginInfo));
+        deepcopy_VkSubpassBeginInfo(pool, pSubpassBeginInfo, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
     }
     local_pSubpassEndInfo = nullptr;
     if (pSubpassEndInfo)
     {
-        local_pSubpassEndInfo = (VkSubpassEndInfoKHR*)pool->alloc(sizeof(const VkSubpassEndInfoKHR));
-        deepcopy_VkSubpassEndInfoKHR(pool, pSubpassEndInfo, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+        local_pSubpassEndInfo = (VkSubpassEndInfo*)pool->alloc(sizeof(const VkSubpassEndInfo));
+        deepcopy_VkSubpassEndInfo(pool, pSubpassEndInfo, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
     }
     if (local_pSubpassBeginInfo)
     {
-        transform_tohost_VkSubpassBeginInfoKHR(sResourceTracker, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo));
+        transform_tohost_VkSubpassBeginInfo(sResourceTracker, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo));
     }
     if (local_pSubpassEndInfo)
     {
-        transform_tohost_VkSubpassEndInfoKHR(sResourceTracker, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+        transform_tohost_VkSubpassEndInfo(sResourceTracker, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
     }
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_963;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        count_VkSubpassBeginInfoKHR(sFeatureBits, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo), countPtr);
-        count_VkSubpassEndInfoKHR(sFeatureBits, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo), countPtr);
+        count_VkSubpassBeginInfo(sFeatureBits, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), countPtr);
+        count_VkSubpassEndInfo(sFeatureBits, (VkSubpassEndInfo*)(local_pSubpassEndInfo), countPtr);
     }
     uint32_t packetSize_vkCmdNextSubpass2KHR = 4 + 4 + count;
     if (queueSubmitWithCommandsEnabled) packetSize_vkCmdNextSubpass2KHR -= 8;
@@ -17775,13 +18665,13 @@
     memcpy(streamPtr, &packetSize_vkCmdNextSubpass2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_964;
-        *&cgen_var_964 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_964, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    reservedmarshal_VkSubpassBeginInfoKHR(stream, (VkSubpassBeginInfoKHR*)(local_pSubpassBeginInfo), streamPtrPtr);
-    reservedmarshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo), streamPtrPtr);
+    reservedmarshal_VkSubpassBeginInfo(stream, (VkSubpassBeginInfo*)(local_pSubpassBeginInfo), streamPtrPtr);
+    reservedmarshal_VkSubpassEndInfo(stream, (VkSubpassEndInfo*)(local_pSubpassEndInfo), streamPtrPtr);
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
     {
@@ -17793,7 +18683,7 @@
 
 void VkEncoder::vkCmdEndRenderPass2KHR(
     VkCommandBuffer commandBuffer,
-    const VkSubpassEndInfoKHR* pSubpassEndInfo,
+    const VkSubpassEndInfo* pSubpassEndInfo,
     uint32_t doLock)
 {
     (void)doLock;
@@ -17802,24 +18692,24 @@
     auto stream = mImpl->stream();
     auto pool = mImpl->pool();
     VkCommandBuffer local_commandBuffer;
-    VkSubpassEndInfoKHR* local_pSubpassEndInfo;
+    VkSubpassEndInfo* local_pSubpassEndInfo;
     local_commandBuffer = commandBuffer;
     local_pSubpassEndInfo = nullptr;
     if (pSubpassEndInfo)
     {
-        local_pSubpassEndInfo = (VkSubpassEndInfoKHR*)pool->alloc(sizeof(const VkSubpassEndInfoKHR));
-        deepcopy_VkSubpassEndInfoKHR(pool, pSubpassEndInfo, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+        local_pSubpassEndInfo = (VkSubpassEndInfo*)pool->alloc(sizeof(const VkSubpassEndInfo));
+        deepcopy_VkSubpassEndInfo(pool, pSubpassEndInfo, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
     }
     if (local_pSubpassEndInfo)
     {
-        transform_tohost_VkSubpassEndInfoKHR(sResourceTracker, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo));
+        transform_tohost_VkSubpassEndInfo(sResourceTracker, (VkSubpassEndInfo*)(local_pSubpassEndInfo));
     }
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_965;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        count_VkSubpassEndInfoKHR(sFeatureBits, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo), countPtr);
+        count_VkSubpassEndInfo(sFeatureBits, (VkSubpassEndInfo*)(local_pSubpassEndInfo), countPtr);
     }
     uint32_t packetSize_vkCmdEndRenderPass2KHR = 4 + 4 + count;
     if (queueSubmitWithCommandsEnabled) packetSize_vkCmdEndRenderPass2KHR -= 8;
@@ -17830,12 +18720,12 @@
     memcpy(streamPtr, &packetSize_vkCmdEndRenderPass2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_966;
-        *&cgen_var_966 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_966, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    reservedmarshal_VkSubpassEndInfoKHR(stream, (VkSubpassEndInfoKHR*)(local_pSubpassEndInfo), streamPtrPtr);
+    reservedmarshal_VkSubpassEndInfo(stream, (VkSubpassEndInfo*)(local_pSubpassEndInfo), streamPtrPtr);
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
     {
@@ -17864,9 +18754,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_967;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_968;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkGetSwapchainStatusKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -17877,13 +18767,13 @@
     memcpy(streamPtr, &opcode_vkGetSwapchainStatusKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetSwapchainStatusKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_969;
-    *&cgen_var_969 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_969, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_970;
-    *&cgen_var_970 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_970, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
     stream->read(&vkGetSwapchainStatusKHR_VkResult_return, sizeof(VkResult));
@@ -17926,7 +18816,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_971;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceExternalFenceInfo(sFeatureBits, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo), countPtr);
         count_VkExternalFenceProperties(sFeatureBits, (VkExternalFenceProperties*)(pExternalFenceProperties), countPtr);
@@ -17939,9 +18829,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceExternalFencePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceExternalFencePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_972;
-    *&cgen_var_972 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_972, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceExternalFenceInfo(stream, (VkPhysicalDeviceExternalFenceInfo*)(local_pExternalFenceInfo), streamPtrPtr);
     reservedmarshal_VkExternalFenceProperties(stream, (VkExternalFenceProperties*)(pExternalFenceProperties), streamPtrPtr);
@@ -17989,7 +18879,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_973;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImportFenceWin32HandleInfoKHR(sFeatureBits, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo), countPtr);
     }
@@ -18001,9 +18891,9 @@
     memcpy(streamPtr, &opcode_vkImportFenceWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkImportFenceWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_974;
-    *&cgen_var_974 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_974, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImportFenceWin32HandleInfoKHR(stream, (VkImportFenceWin32HandleInfoKHR*)(local_pImportFenceWin32HandleInfo), streamPtrPtr);
     VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
@@ -18045,7 +18935,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_975;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkFenceGetWin32HandleInfoKHR(sFeatureBits, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo), countPtr);
         *countPtr += sizeof(HANDLE);
@@ -18058,9 +18948,9 @@
     memcpy(streamPtr, &opcode_vkGetFenceWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetFenceWin32HandleKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_976;
-    *&cgen_var_976 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_976, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkFenceGetWin32HandleInfoKHR(stream, (VkFenceGetWin32HandleInfoKHR*)(local_pGetWin32HandleInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (HANDLE*)pHandle, sizeof(HANDLE));
@@ -18106,7 +18996,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_977;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImportFenceFdInfoKHR(sFeatureBits, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo), countPtr);
     }
@@ -18118,9 +19008,9 @@
     memcpy(streamPtr, &opcode_vkImportFenceFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkImportFenceFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_978;
-    *&cgen_var_978 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_978, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImportFenceFdInfoKHR(stream, (VkImportFenceFdInfoKHR*)(local_pImportFenceFdInfo), streamPtrPtr);
     VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
@@ -18162,7 +19052,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_979;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkFenceGetFdInfoKHR(sFeatureBits, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo), countPtr);
         *countPtr += sizeof(int);
@@ -18175,9 +19065,9 @@
     memcpy(streamPtr, &opcode_vkGetFenceFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetFenceFdKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_980;
-    *&cgen_var_980 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_980, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkFenceGetFdInfoKHR(stream, (VkFenceGetFdInfoKHR*)(local_pGetFdInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (int*)pFd, sizeof(int));
@@ -18196,6 +19086,338 @@
 }
 
 #endif
+#ifdef VK_KHR_performance_query
+VkResult VkEncoder::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+    VkPhysicalDevice physicalDevice,
+    uint32_t queueFamilyIndex,
+    uint32_t* pCounterCount,
+    VkPerformanceCounterKHR* pCounters,
+    VkPerformanceCounterDescriptionKHR* pCounterDescriptions,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    uint32_t local_queueFamilyIndex;
+    local_physicalDevice = physicalDevice;
+    local_queueFamilyIndex = queueFamilyIndex;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pCounterCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pCounters)
+        {
+            if ((pCounterCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+                {
+                    count_VkPerformanceCounterKHR(sFeatureBits, (VkPerformanceCounterKHR*)(pCounters + i), countPtr);
+                }
+            }
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pCounterDescriptions)
+        {
+            if ((pCounterCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+                {
+                    count_VkPerformanceCounterDescriptionKHR(sFeatureBits, (VkPerformanceCounterDescriptionKHR*)(pCounterDescriptions + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pCounterCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pCounterCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pCounterCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pCounters;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pCounters)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+        {
+            reservedmarshal_VkPerformanceCounterKHR(stream, (VkPerformanceCounterKHR*)(pCounters + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pCounterDescriptions;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pCounterDescriptions)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+        {
+            reservedmarshal_VkPerformanceCounterDescriptionKHR(stream, (VkPerformanceCounterDescriptionKHR*)(pCounterDescriptions + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pCounterCount;
+    check_pCounterCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pCounterCount)
+    {
+        if (!(check_pCounterCount))
+        {
+            fprintf(stderr, "fatal: pCounterCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pCounterCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkPerformanceCounterKHR* check_pCounters;
+    check_pCounters = (VkPerformanceCounterKHR*)(uintptr_t)stream->getBe64();
+    if (pCounters)
+    {
+        if (!(check_pCounters))
+        {
+            fprintf(stderr, "fatal: pCounters inconsistent between guest and host\n");
+        }
+        if ((pCounterCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+            {
+                unmarshal_VkPerformanceCounterKHR(stream, (VkPerformanceCounterKHR*)(pCounters + i));
+            }
+        }
+    }
+    if ((pCounterCount) != nullptr)
+    {
+        if (pCounters)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+            {
+                transform_fromhost_VkPerformanceCounterKHR(sResourceTracker, (VkPerformanceCounterKHR*)(pCounters + i));
+            }
+        }
+    }
+    // WARNING PTR CHECK
+    VkPerformanceCounterDescriptionKHR* check_pCounterDescriptions;
+    check_pCounterDescriptions = (VkPerformanceCounterDescriptionKHR*)(uintptr_t)stream->getBe64();
+    if (pCounterDescriptions)
+    {
+        if (!(check_pCounterDescriptions))
+        {
+            fprintf(stderr, "fatal: pCounterDescriptions inconsistent between guest and host\n");
+        }
+        if ((pCounterCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+            {
+                unmarshal_VkPerformanceCounterDescriptionKHR(stream, (VkPerformanceCounterDescriptionKHR*)(pCounterDescriptions + i));
+            }
+        }
+    }
+    if ((pCounterCount) != nullptr)
+    {
+        if (pCounterDescriptions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCounterCount)); ++i)
+            {
+                transform_fromhost_VkPerformanceCounterDescriptionKHR(sResourceTracker, (VkPerformanceCounterDescriptionKHR*)(pCounterDescriptions + i));
+            }
+        }
+    }
+    VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return;
+}
+
+void VkEncoder::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
+    VkPhysicalDevice physicalDevice,
+    const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
+    uint32_t* pNumPasses,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    VkQueryPoolPerformanceCreateInfoKHR* local_pPerformanceQueryCreateInfo;
+    local_physicalDevice = physicalDevice;
+    local_pPerformanceQueryCreateInfo = nullptr;
+    if (pPerformanceQueryCreateInfo)
+    {
+        local_pPerformanceQueryCreateInfo = (VkQueryPoolPerformanceCreateInfoKHR*)pool->alloc(sizeof(const VkQueryPoolPerformanceCreateInfoKHR));
+        deepcopy_VkQueryPoolPerformanceCreateInfoKHR(pool, pPerformanceQueryCreateInfo, (VkQueryPoolPerformanceCreateInfoKHR*)(local_pPerformanceQueryCreateInfo));
+    }
+    if (local_pPerformanceQueryCreateInfo)
+    {
+        transform_tohost_VkQueryPoolPerformanceCreateInfoKHR(sResourceTracker, (VkQueryPoolPerformanceCreateInfoKHR*)(local_pPerformanceQueryCreateInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkQueryPoolPerformanceCreateInfoKHR(sFeatureBits, (VkQueryPoolPerformanceCreateInfoKHR*)(local_pPerformanceQueryCreateInfo), countPtr);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkQueryPoolPerformanceCreateInfoKHR(stream, (VkQueryPoolPerformanceCreateInfoKHR*)(local_pPerformanceQueryCreateInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (uint32_t*)pNumPasses, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    stream->read((uint32_t*)pNumPasses, sizeof(uint32_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkAcquireProfilingLockKHR(
+    VkDevice device,
+    const VkAcquireProfilingLockInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAcquireProfilingLockInfoKHR* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkAcquireProfilingLockInfoKHR*)pool->alloc(sizeof(const VkAcquireProfilingLockInfoKHR));
+        deepcopy_VkAcquireProfilingLockInfoKHR(pool, pInfo, (VkAcquireProfilingLockInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkAcquireProfilingLockInfoKHR(sResourceTracker, (VkAcquireProfilingLockInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkAcquireProfilingLockInfoKHR(sFeatureBits, (VkAcquireProfilingLockInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkAcquireProfilingLockKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkAcquireProfilingLockKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkAcquireProfilingLockKHR = OP_vkAcquireProfilingLockKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkAcquireProfilingLockKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkAcquireProfilingLockKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkAcquireProfilingLockInfoKHR(stream, (VkAcquireProfilingLockInfoKHR*)(local_pInfo), streamPtrPtr);
+    VkResult vkAcquireProfilingLockKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkAcquireProfilingLockKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkAcquireProfilingLockKHR_VkResult_return;
+}
+
+void VkEncoder::vkReleaseProfilingLockKHR(
+    VkDevice device,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    local_device = device;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkReleaseProfilingLockKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkReleaseProfilingLockKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkReleaseProfilingLockKHR = OP_vkReleaseProfilingLockKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkReleaseProfilingLockKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkReleaseProfilingLockKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -18226,7 +19448,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_981;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceSurfaceInfo2KHR(sFeatureBits, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), countPtr);
         count_VkSurfaceCapabilities2KHR(sFeatureBits, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities), countPtr);
@@ -18239,9 +19461,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfaceCapabilities2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfaceCapabilities2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_982;
-    *&cgen_var_982 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_982, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), streamPtrPtr);
     reservedmarshal_VkSurfaceCapabilities2KHR(stream, (VkSurfaceCapabilities2KHR*)(pSurfaceCapabilities), streamPtrPtr);
@@ -18290,7 +19512,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_983;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkPhysicalDeviceSurfaceInfo2KHR(sFeatureBits, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), countPtr);
         // WARNING PTR CHECK
@@ -18303,9 +19525,12 @@
         *countPtr += 8;
         if (pSurfaceFormats)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+            if ((pSurfaceFormatCount) != nullptr)
             {
-                count_VkSurfaceFormat2KHR(sFeatureBits, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+                {
+                    count_VkSurfaceFormat2KHR(sFeatureBits, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i), countPtr);
+                }
             }
         }
     }
@@ -18317,14 +19542,14 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfaceFormats2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfaceFormats2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_984;
-    *&cgen_var_984 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_984, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_985 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
-    memcpy((*streamPtrPtr), &cgen_var_985, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pSurfaceFormatCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSurfaceFormatCount)
@@ -18333,8 +19558,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_986 = (uint64_t)(uintptr_t)pSurfaceFormats;
-    memcpy((*streamPtrPtr), &cgen_var_986, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pSurfaceFormats;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSurfaceFormats)
@@ -18364,16 +19589,22 @@
         {
             fprintf(stderr, "fatal: pSurfaceFormats inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+        if ((pSurfaceFormatCount) != nullptr)
         {
-            unmarshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+            {
+                unmarshal_VkSurfaceFormat2KHR(stream, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
+            }
         }
     }
-    if (pSurfaceFormats)
+    if ((pSurfaceFormatCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+        if (pSurfaceFormats)
         {
-            transform_fromhost_VkSurfaceFormat2KHR(sResourceTracker, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSurfaceFormatCount)); ++i)
+            {
+                transform_fromhost_VkSurfaceFormat2KHR(sResourceTracker, (VkSurfaceFormat2KHR*)(pSurfaceFormats + i));
+            }
         }
     }
     VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
@@ -18408,7 +19639,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_989;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -18420,9 +19651,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkDisplayProperties2KHR(sFeatureBits, (VkDisplayProperties2KHR*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkDisplayProperties2KHR(sFeatureBits, (VkDisplayProperties2KHR*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -18434,13 +19668,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceDisplayProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceDisplayProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_990;
-    *&cgen_var_990 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_990, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_991 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_991, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -18449,8 +19683,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_992 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_992, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -18480,16 +19714,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkDisplayProperties2KHR(stream, (VkDisplayProperties2KHR*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkDisplayProperties2KHR(sResourceTracker, (VkDisplayProperties2KHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkDisplayProperties2KHR(sResourceTracker, (VkDisplayProperties2KHR*)(pProperties + i));
+            }
         }
     }
     VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
@@ -18520,7 +19760,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_995;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -18532,9 +19772,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkDisplayPlaneProperties2KHR(sFeatureBits, (VkDisplayPlaneProperties2KHR*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkDisplayPlaneProperties2KHR(sFeatureBits, (VkDisplayPlaneProperties2KHR*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -18546,13 +19789,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceDisplayPlaneProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_996;
-    *&cgen_var_996 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_996, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_997 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_997, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -18561,8 +19804,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_998 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_998, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -18592,16 +19835,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkDisplayPlaneProperties2KHR(stream, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkDisplayPlaneProperties2KHR(sResourceTracker, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkDisplayPlaneProperties2KHR(sResourceTracker, (VkDisplayPlaneProperties2KHR*)(pProperties + i));
+            }
         }
     }
     VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
@@ -18635,9 +19884,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1001;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1002;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -18649,9 +19898,12 @@
         *countPtr += 8;
         if (pProperties)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            if ((pPropertyCount) != nullptr)
             {
-                count_VkDisplayModeProperties2KHR(sFeatureBits, (VkDisplayModeProperties2KHR*)(pProperties + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkDisplayModeProperties2KHR(sFeatureBits, (VkDisplayModeProperties2KHR*)(pProperties + i), countPtr);
+                }
             }
         }
     }
@@ -18663,17 +19915,17 @@
     memcpy(streamPtr, &opcode_vkGetDisplayModeProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDisplayModeProperties2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1003;
-    *&cgen_var_1003 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1003, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1004;
-    *&cgen_var_1004 = get_host_u64_VkDisplayKHR((*&local_display));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1004, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayKHR((*&local_display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1005 = (uint64_t)(uintptr_t)pPropertyCount;
-    memcpy((*streamPtrPtr), &cgen_var_1005, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPropertyCount)
@@ -18682,8 +19934,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1006 = (uint64_t)(uintptr_t)pProperties;
-    memcpy((*streamPtrPtr), &cgen_var_1006, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pProperties)
@@ -18713,16 +19965,22 @@
         {
             fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if ((pPropertyCount) != nullptr)
         {
-            unmarshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkDisplayModeProperties2KHR(stream, (VkDisplayModeProperties2KHR*)(pProperties + i));
+            }
         }
     }
-    if (pProperties)
+    if ((pPropertyCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        if (pProperties)
         {
-            transform_fromhost_VkDisplayModeProperties2KHR(sResourceTracker, (VkDisplayModeProperties2KHR*)(pProperties + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkDisplayModeProperties2KHR(sResourceTracker, (VkDisplayModeProperties2KHR*)(pProperties + i));
+            }
         }
     }
     VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
@@ -18764,7 +20022,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1009;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDisplayPlaneInfo2KHR(sFeatureBits, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo), countPtr);
         count_VkDisplayPlaneCapabilities2KHR(sFeatureBits, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities), countPtr);
@@ -18777,9 +20035,9 @@
     memcpy(streamPtr, &opcode_vkGetDisplayPlaneCapabilities2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDisplayPlaneCapabilities2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1010;
-    *&cgen_var_1010 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1010, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDisplayPlaneInfo2KHR(stream, (VkDisplayPlaneInfo2KHR*)(local_pDisplayPlaneInfo), streamPtrPtr);
     reservedmarshal_VkDisplayPlaneCapabilities2KHR(stream, (VkDisplayPlaneCapabilities2KHR*)(pCapabilities), streamPtrPtr);
@@ -18835,7 +20093,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1011;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImageMemoryRequirementsInfo2(sFeatureBits, (VkImageMemoryRequirementsInfo2*)(local_pInfo), countPtr);
         count_VkMemoryRequirements2(sFeatureBits, (VkMemoryRequirements2*)(pMemoryRequirements), countPtr);
@@ -18848,9 +20106,9 @@
     memcpy(streamPtr, &opcode_vkGetImageMemoryRequirements2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetImageMemoryRequirements2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1012;
-    *&cgen_var_1012 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1012, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageMemoryRequirementsInfo2(stream, (VkImageMemoryRequirementsInfo2*)(local_pInfo), streamPtrPtr);
     reservedmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements), streamPtrPtr);
@@ -18895,7 +20153,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1013;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkBufferMemoryRequirementsInfo2(sFeatureBits, (VkBufferMemoryRequirementsInfo2*)(local_pInfo), countPtr);
         count_VkMemoryRequirements2(sFeatureBits, (VkMemoryRequirements2*)(pMemoryRequirements), countPtr);
@@ -18908,9 +20166,9 @@
     memcpy(streamPtr, &opcode_vkGetBufferMemoryRequirements2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetBufferMemoryRequirements2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1014;
-    *&cgen_var_1014 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1014, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkBufferMemoryRequirementsInfo2(stream, (VkBufferMemoryRequirementsInfo2*)(local_pInfo), streamPtrPtr);
     reservedmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements), streamPtrPtr);
@@ -18956,7 +20214,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1015;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImageSparseMemoryRequirementsInfo2(sFeatureBits, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo), countPtr);
         // WARNING PTR CHECK
@@ -18969,9 +20227,12 @@
         *countPtr += 8;
         if (pSparseMemoryRequirements)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            if ((pSparseMemoryRequirementCount) != nullptr)
             {
-                count_VkSparseImageMemoryRequirements2(sFeatureBits, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+                {
+                    count_VkSparseImageMemoryRequirements2(sFeatureBits, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i), countPtr);
+                }
             }
         }
     }
@@ -18983,14 +20244,14 @@
     memcpy(streamPtr, &opcode_vkGetImageSparseMemoryRequirements2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetImageSparseMemoryRequirements2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1016;
-    *&cgen_var_1016 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1016, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageSparseMemoryRequirementsInfo2(stream, (VkImageSparseMemoryRequirementsInfo2*)(local_pInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1017 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
-    memcpy((*streamPtrPtr), &cgen_var_1017, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pSparseMemoryRequirementCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSparseMemoryRequirementCount)
@@ -18999,8 +20260,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1018 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
-    memcpy((*streamPtrPtr), &cgen_var_1018, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pSparseMemoryRequirements;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSparseMemoryRequirements)
@@ -19030,16 +20291,22 @@
         {
             fprintf(stderr, "fatal: pSparseMemoryRequirements inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        if ((pSparseMemoryRequirementCount) != nullptr)
         {
-            unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                unmarshal_VkSparseImageMemoryRequirements2(stream, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            }
         }
     }
-    if (pSparseMemoryRequirements)
+    if ((pSparseMemoryRequirementCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+        if (pSparseMemoryRequirements)
         {
-            transform_fromhost_VkSparseImageMemoryRequirements2(sResourceTracker, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pSparseMemoryRequirementCount)); ++i)
+            {
+                transform_fromhost_VkSparseImageMemoryRequirements2(sResourceTracker, (VkSparseImageMemoryRequirements2*)(pSparseMemoryRequirements + i));
+            }
         }
     }
     ++encodeCount;;
@@ -19095,7 +20362,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1021;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSamplerYcbcrConversionCreateInfo(sFeatureBits, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -19104,7 +20371,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1022;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateSamplerYcbcrConversionKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -19115,14 +20382,14 @@
     memcpy(streamPtr, &opcode_vkCreateSamplerYcbcrConversionKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateSamplerYcbcrConversionKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1023;
-    *&cgen_var_1023 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1023, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSamplerYcbcrConversionCreateInfo(stream, (VkSamplerYcbcrConversionCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1024 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1024, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -19130,15 +20397,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1025;
-    *&cgen_var_1025 = (uint64_t)((*pYcbcrConversion));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1025, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pYcbcrConversion));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1026;
-    stream->read((uint64_t*)&cgen_var_1026, 8);
-    stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_1026, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_3, (VkSamplerYcbcrConversion*)pYcbcrConversion, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
     stream->read(&vkCreateSamplerYcbcrConversionKHR_VkResult_return, sizeof(VkResult));
@@ -19182,9 +20449,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1027;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1028;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -19201,17 +20468,17 @@
     memcpy(streamPtr, &opcode_vkDestroySamplerYcbcrConversionKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroySamplerYcbcrConversionKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1029;
-    *&cgen_var_1029 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1029, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1030;
-    *&cgen_var_1030 = get_host_u64_VkSamplerYcbcrConversion((*&local_ycbcrConversion));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1030, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSamplerYcbcrConversion((*&local_ycbcrConversion));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1031 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1031, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -19266,7 +20533,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1032;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
@@ -19282,9 +20549,9 @@
     memcpy(streamPtr, &opcode_vkBindBufferMemory2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkBindBufferMemory2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1033;
-    *&cgen_var_1033 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1033, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -19339,7 +20606,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1034;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
@@ -19355,9 +20622,9 @@
     memcpy(streamPtr, &opcode_vkBindImageMemory2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkBindImageMemory2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1035;
-    *&cgen_var_1035 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1035, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -19378,6 +20645,8 @@
 }
 
 #endif
+#ifdef VK_KHR_portability_subset
+#endif
 #ifdef VK_KHR_maintenance3
 void VkEncoder::vkGetDescriptorSetLayoutSupportKHR(
     VkDevice device,
@@ -19406,7 +20675,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1036;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDescriptorSetLayoutCreateInfo(sFeatureBits, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo), countPtr);
         count_VkDescriptorSetLayoutSupport(sFeatureBits, (VkDescriptorSetLayoutSupport*)(pSupport), countPtr);
@@ -19419,9 +20688,9 @@
     memcpy(streamPtr, &opcode_vkGetDescriptorSetLayoutSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetDescriptorSetLayoutSupportKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1037;
-    *&cgen_var_1037 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1037, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDescriptorSetLayoutCreateInfo(stream, (VkDescriptorSetLayoutCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     reservedmarshal_VkDescriptorSetLayoutSupport(stream, (VkDescriptorSetLayoutSupport*)(pSupport), streamPtrPtr);
@@ -19473,12 +20742,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1038;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1039;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
-        uint64_t cgen_var_1040;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(uint32_t);
@@ -19493,20 +20762,20 @@
     memcpy(streamPtr, &packetSize_vkCmdDrawIndirectCountKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1041;
-        *&cgen_var_1041 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1041, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_1042;
-    *&cgen_var_1042 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1042, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
-    uint64_t cgen_var_1043;
-    *&cgen_var_1043 = get_host_u64_VkBuffer((*&local_countBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1043, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_countBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -19555,12 +20824,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1044;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1045;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
-        uint64_t cgen_var_1046;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(uint32_t);
@@ -19575,20 +20844,20 @@
     memcpy(streamPtr, &packetSize_vkCmdDrawIndexedIndirectCountKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1047;
-        *&cgen_var_1047 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1047, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_1048;
-    *&cgen_var_1048 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1048, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
-    uint64_t cgen_var_1049;
-    *&cgen_var_1049 = get_host_u64_VkBuffer((*&local_countBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1049, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_countBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -19606,9 +20875,1593 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
 #endif
-#ifdef VK_KHR_shader_float16_int8
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+VkResult VkEncoder::vkGetSemaphoreCounterValueKHR(
+    VkDevice device,
+    VkSemaphore semaphore,
+    uint64_t* pValue,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSemaphore local_semaphore;
+    local_device = device;
+    local_semaphore = semaphore;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkGetSemaphoreCounterValueKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetSemaphoreCounterValueKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetSemaphoreCounterValueKHR = OP_vkGetSemaphoreCounterValueKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetSemaphoreCounterValueKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetSemaphoreCounterValueKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSemaphore((*&local_semaphore));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint64_t*)pValue, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    stream->read((uint64_t*)pValue, sizeof(uint64_t));
+    VkResult vkGetSemaphoreCounterValueKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetSemaphoreCounterValueKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetSemaphoreCounterValueKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkWaitSemaphoresKHR(
+    VkDevice device,
+    const VkSemaphoreWaitInfo* pWaitInfo,
+    uint64_t timeout,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSemaphoreWaitInfo* local_pWaitInfo;
+    uint64_t local_timeout;
+    local_device = device;
+    local_pWaitInfo = nullptr;
+    if (pWaitInfo)
+    {
+        local_pWaitInfo = (VkSemaphoreWaitInfo*)pool->alloc(sizeof(const VkSemaphoreWaitInfo));
+        deepcopy_VkSemaphoreWaitInfo(pool, pWaitInfo, (VkSemaphoreWaitInfo*)(local_pWaitInfo));
+    }
+    local_timeout = timeout;
+    if (local_pWaitInfo)
+    {
+        transform_tohost_VkSemaphoreWaitInfo(sResourceTracker, (VkSemaphoreWaitInfo*)(local_pWaitInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkSemaphoreWaitInfo(sFeatureBits, (VkSemaphoreWaitInfo*)(local_pWaitInfo), countPtr);
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkWaitSemaphoresKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkWaitSemaphoresKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkWaitSemaphoresKHR = OP_vkWaitSemaphoresKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkWaitSemaphoresKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkWaitSemaphoresKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkSemaphoreWaitInfo(stream, (VkSemaphoreWaitInfo*)(local_pWaitInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (uint64_t*)&local_timeout, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    VkResult vkWaitSemaphoresKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkWaitSemaphoresKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkWaitSemaphoresKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkSignalSemaphoreKHR(
+    VkDevice device,
+    const VkSemaphoreSignalInfo* pSignalInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSemaphoreSignalInfo* local_pSignalInfo;
+    local_device = device;
+    local_pSignalInfo = nullptr;
+    if (pSignalInfo)
+    {
+        local_pSignalInfo = (VkSemaphoreSignalInfo*)pool->alloc(sizeof(const VkSemaphoreSignalInfo));
+        deepcopy_VkSemaphoreSignalInfo(pool, pSignalInfo, (VkSemaphoreSignalInfo*)(local_pSignalInfo));
+    }
+    if (local_pSignalInfo)
+    {
+        transform_tohost_VkSemaphoreSignalInfo(sResourceTracker, (VkSemaphoreSignalInfo*)(local_pSignalInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkSemaphoreSignalInfo(sFeatureBits, (VkSemaphoreSignalInfo*)(local_pSignalInfo), countPtr);
+    }
+    uint32_t packetSize_vkSignalSemaphoreKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSignalSemaphoreKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSignalSemaphoreKHR = OP_vkSignalSemaphoreKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSignalSemaphoreKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSignalSemaphoreKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkSemaphoreSignalInfo(stream, (VkSemaphoreSignalInfo*)(local_pSignalInfo), streamPtrPtr);
+    VkResult vkSignalSemaphoreKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkSignalSemaphoreKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkSignalSemaphoreKHR_VkResult_return;
+}
+
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+VkResult VkEncoder::vkGetPhysicalDeviceFragmentShadingRatesKHR(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pFragmentShadingRateCount,
+    VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    local_physicalDevice = physicalDevice;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pFragmentShadingRateCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pFragmentShadingRates)
+        {
+            if ((pFragmentShadingRateCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pFragmentShadingRateCount)); ++i)
+                {
+                    count_VkPhysicalDeviceFragmentShadingRateKHR(sFeatureBits, (VkPhysicalDeviceFragmentShadingRateKHR*)(pFragmentShadingRates + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceFragmentShadingRatesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceFragmentShadingRatesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceFragmentShadingRatesKHR = OP_vkGetPhysicalDeviceFragmentShadingRatesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceFragmentShadingRatesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceFragmentShadingRatesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pFragmentShadingRateCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pFragmentShadingRateCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pFragmentShadingRateCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pFragmentShadingRates;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pFragmentShadingRates)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pFragmentShadingRateCount)); ++i)
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentShadingRateKHR(stream, (VkPhysicalDeviceFragmentShadingRateKHR*)(pFragmentShadingRates + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pFragmentShadingRateCount;
+    check_pFragmentShadingRateCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pFragmentShadingRateCount)
+    {
+        if (!(check_pFragmentShadingRateCount))
+        {
+            fprintf(stderr, "fatal: pFragmentShadingRateCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pFragmentShadingRateCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkPhysicalDeviceFragmentShadingRateKHR* check_pFragmentShadingRates;
+    check_pFragmentShadingRates = (VkPhysicalDeviceFragmentShadingRateKHR*)(uintptr_t)stream->getBe64();
+    if (pFragmentShadingRates)
+    {
+        if (!(check_pFragmentShadingRates))
+        {
+            fprintf(stderr, "fatal: pFragmentShadingRates inconsistent between guest and host\n");
+        }
+        if ((pFragmentShadingRateCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pFragmentShadingRateCount)); ++i)
+            {
+                unmarshal_VkPhysicalDeviceFragmentShadingRateKHR(stream, (VkPhysicalDeviceFragmentShadingRateKHR*)(pFragmentShadingRates + i));
+            }
+        }
+    }
+    if ((pFragmentShadingRateCount) != nullptr)
+    {
+        if (pFragmentShadingRates)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pFragmentShadingRateCount)); ++i)
+            {
+                transform_fromhost_VkPhysicalDeviceFragmentShadingRateKHR(sResourceTracker, (VkPhysicalDeviceFragmentShadingRateKHR*)(pFragmentShadingRates + i));
+            }
+        }
+    }
+    VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return;
+}
+
+void VkEncoder::vkCmdSetFragmentShadingRateKHR(
+    VkCommandBuffer commandBuffer,
+    const VkExtent2D* pFragmentSize,
+    const VkFragmentShadingRateCombinerOpKHR combinerOps[2],
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkExtent2D* local_pFragmentSize;
+    VkFragmentShadingRateCombinerOpKHR local_combinerOps[2];
+    local_commandBuffer = commandBuffer;
+    local_pFragmentSize = nullptr;
+    if (pFragmentSize)
+    {
+        local_pFragmentSize = (VkExtent2D*)pool->alloc(sizeof(const VkExtent2D));
+        deepcopy_VkExtent2D(pool, pFragmentSize, (VkExtent2D*)(local_pFragmentSize));
+    }
+    memcpy(local_combinerOps, combinerOps, 2 * sizeof(const VkFragmentShadingRateCombinerOpKHR));
+    if (local_pFragmentSize)
+    {
+        transform_tohost_VkExtent2D(sResourceTracker, (VkExtent2D*)(local_pFragmentSize));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkExtent2D(sFeatureBits, (VkExtent2D*)(local_pFragmentSize), countPtr);
+        *countPtr += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+    }
+    uint32_t packetSize_vkCmdSetFragmentShadingRateKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetFragmentShadingRateKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetFragmentShadingRateKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetFragmentShadingRateKHR = OP_vkCmdSetFragmentShadingRateKHR;
+    memcpy(streamPtr, &opcode_vkCmdSetFragmentShadingRateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetFragmentShadingRateKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkExtent2D(stream, (VkExtent2D*)(local_pFragmentSize), streamPtrPtr);
+    memcpy(*streamPtrPtr, (VkFragmentShadingRateCombinerOpKHR*)local_combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+    *streamPtrPtr += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+VkDeviceAddress VkEncoder::vkGetBufferDeviceAddressKHR(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkBufferDeviceAddressInfo* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkBufferDeviceAddressInfo*)pool->alloc(sizeof(const VkBufferDeviceAddressInfo));
+        deepcopy_VkBufferDeviceAddressInfo(pool, pInfo, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkBufferDeviceAddressInfo(sResourceTracker, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkBufferDeviceAddressInfo(sFeatureBits, (VkBufferDeviceAddressInfo*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetBufferDeviceAddressKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetBufferDeviceAddressKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetBufferDeviceAddressKHR = OP_vkGetBufferDeviceAddressKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetBufferDeviceAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetBufferDeviceAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkBufferDeviceAddressInfo(stream, (VkBufferDeviceAddressInfo*)(local_pInfo), streamPtrPtr);
+    VkDeviceAddress vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0;
+    stream->read(&vkGetBufferDeviceAddressKHR_VkDeviceAddress_return, sizeof(VkDeviceAddress));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetBufferDeviceAddressKHR_VkDeviceAddress_return;
+}
+
+uint64_t VkEncoder::vkGetBufferOpaqueCaptureAddressKHR(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkBufferDeviceAddressInfo* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkBufferDeviceAddressInfo*)pool->alloc(sizeof(const VkBufferDeviceAddressInfo));
+        deepcopy_VkBufferDeviceAddressInfo(pool, pInfo, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkBufferDeviceAddressInfo(sResourceTracker, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkBufferDeviceAddressInfo(sFeatureBits, (VkBufferDeviceAddressInfo*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetBufferOpaqueCaptureAddressKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetBufferOpaqueCaptureAddressKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetBufferOpaqueCaptureAddressKHR = OP_vkGetBufferOpaqueCaptureAddressKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetBufferOpaqueCaptureAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetBufferOpaqueCaptureAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkBufferDeviceAddressInfo(stream, (VkBufferDeviceAddressInfo*)(local_pInfo), streamPtrPtr);
+    uint64_t vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
+    stream->read(&vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return, sizeof(uint64_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return;
+}
+
+uint64_t VkEncoder::vkGetDeviceMemoryOpaqueCaptureAddressKHR(
+    VkDevice device,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeviceMemoryOpaqueCaptureAddressInfo* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkDeviceMemoryOpaqueCaptureAddressInfo*)pool->alloc(sizeof(const VkDeviceMemoryOpaqueCaptureAddressInfo));
+        deepcopy_VkDeviceMemoryOpaqueCaptureAddressInfo(pool, pInfo, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkDeviceMemoryOpaqueCaptureAddressInfo(sResourceTracker, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkDeviceMemoryOpaqueCaptureAddressInfo(sFeatureBits, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetDeviceMemoryOpaqueCaptureAddressKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceMemoryOpaqueCaptureAddressKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceMemoryOpaqueCaptureAddressKHR = OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceMemoryOpaqueCaptureAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceMemoryOpaqueCaptureAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(stream, (VkDeviceMemoryOpaqueCaptureAddressInfo*)(local_pInfo), streamPtrPtr);
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
+    stream->read(&vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return, sizeof(uint64_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return;
+}
+
+#endif
+#ifdef VK_KHR_deferred_host_operations
+VkResult VkEncoder::vkCreateDeferredOperationKHR(
+    VkDevice device,
+    const VkAllocationCallbacks* pAllocator,
+    VkDeferredOperationKHR* pDeferredOperation,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateDeferredOperationKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateDeferredOperationKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateDeferredOperationKHR = OP_vkCreateDeferredOperationKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateDeferredOperationKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateDeferredOperationKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    uint64_t cgen_var_2 = (uint64_t)(*pDeferredOperation);
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pDeferredOperation) = (VkDeferredOperationKHR)stream->getBe64();
+    VkResult vkCreateDeferredOperationKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateDeferredOperationKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateDeferredOperationKHR_VkResult_return;
+}
+
+void VkEncoder::vkDestroyDeferredOperationKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation,
+    const VkAllocationCallbacks* pAllocator,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_operation;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_operation = operation;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyDeferredOperationKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyDeferredOperationKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyDeferredOperationKHR = OP_vkDestroyDeferredOperationKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyDeferredOperationKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyDeferredOperationKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_operation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+uint32_t VkEncoder::vkGetDeferredOperationMaxConcurrencyKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_operation;
+    local_device = device;
+    local_operation = operation;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkGetDeferredOperationMaxConcurrencyKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeferredOperationMaxConcurrencyKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeferredOperationMaxConcurrencyKHR = OP_vkGetDeferredOperationMaxConcurrencyKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeferredOperationMaxConcurrencyKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeferredOperationMaxConcurrencyKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_operation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    uint32_t vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = (uint32_t)0;
+    stream->read(&vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return, sizeof(uint32_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return;
+}
+
+VkResult VkEncoder::vkGetDeferredOperationResultKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_operation;
+    local_device = device;
+    local_operation = operation;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkGetDeferredOperationResultKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeferredOperationResultKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeferredOperationResultKHR = OP_vkGetDeferredOperationResultKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeferredOperationResultKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeferredOperationResultKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_operation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    VkResult vkGetDeferredOperationResultKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetDeferredOperationResultKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetDeferredOperationResultKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkDeferredOperationJoinKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_operation;
+    local_device = device;
+    local_operation = operation;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkDeferredOperationJoinKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDeferredOperationJoinKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDeferredOperationJoinKHR = OP_vkDeferredOperationJoinKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDeferredOperationJoinKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDeferredOperationJoinKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_operation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    VkResult vkDeferredOperationJoinKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkDeferredOperationJoinKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkDeferredOperationJoinKHR_VkResult_return;
+}
+
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+VkResult VkEncoder::vkGetPipelineExecutablePropertiesKHR(
+    VkDevice device,
+    const VkPipelineInfoKHR* pPipelineInfo,
+    uint32_t* pExecutableCount,
+    VkPipelineExecutablePropertiesKHR* pProperties,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipelineInfoKHR* local_pPipelineInfo;
+    local_device = device;
+    local_pPipelineInfo = nullptr;
+    if (pPipelineInfo)
+    {
+        local_pPipelineInfo = (VkPipelineInfoKHR*)pool->alloc(sizeof(const VkPipelineInfoKHR));
+        deepcopy_VkPipelineInfoKHR(pool, pPipelineInfo, (VkPipelineInfoKHR*)(local_pPipelineInfo));
+    }
+    if (local_pPipelineInfo)
+    {
+        transform_tohost_VkPipelineInfoKHR(sResourceTracker, (VkPipelineInfoKHR*)(local_pPipelineInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPipelineInfoKHR(sFeatureBits, (VkPipelineInfoKHR*)(local_pPipelineInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pExecutableCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pProperties)
+        {
+            if ((pExecutableCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pExecutableCount)); ++i)
+                {
+                    count_VkPipelineExecutablePropertiesKHR(sFeatureBits, (VkPipelineExecutablePropertiesKHR*)(pProperties + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPipelineExecutablePropertiesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPipelineExecutablePropertiesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPipelineExecutablePropertiesKHR = OP_vkGetPipelineExecutablePropertiesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPipelineExecutablePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPipelineExecutablePropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkPipelineInfoKHR(stream, (VkPipelineInfoKHR*)(local_pPipelineInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pExecutableCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pExecutableCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pExecutableCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pExecutableCount)); ++i)
+        {
+            reservedmarshal_VkPipelineExecutablePropertiesKHR(stream, (VkPipelineExecutablePropertiesKHR*)(pProperties + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pExecutableCount;
+    check_pExecutableCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pExecutableCount)
+    {
+        if (!(check_pExecutableCount))
+        {
+            fprintf(stderr, "fatal: pExecutableCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pExecutableCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkPipelineExecutablePropertiesKHR* check_pProperties;
+    check_pProperties = (VkPipelineExecutablePropertiesKHR*)(uintptr_t)stream->getBe64();
+    if (pProperties)
+    {
+        if (!(check_pProperties))
+        {
+            fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
+        }
+        if ((pExecutableCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pExecutableCount)); ++i)
+            {
+                unmarshal_VkPipelineExecutablePropertiesKHR(stream, (VkPipelineExecutablePropertiesKHR*)(pProperties + i));
+            }
+        }
+    }
+    if ((pExecutableCount) != nullptr)
+    {
+        if (pProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pExecutableCount)); ++i)
+            {
+                transform_fromhost_VkPipelineExecutablePropertiesKHR(sResourceTracker, (VkPipelineExecutablePropertiesKHR*)(pProperties + i));
+            }
+        }
+    }
+    VkResult vkGetPipelineExecutablePropertiesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPipelineExecutablePropertiesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPipelineExecutablePropertiesKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetPipelineExecutableStatisticsKHR(
+    VkDevice device,
+    const VkPipelineExecutableInfoKHR* pExecutableInfo,
+    uint32_t* pStatisticCount,
+    VkPipelineExecutableStatisticKHR* pStatistics,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipelineExecutableInfoKHR* local_pExecutableInfo;
+    local_device = device;
+    local_pExecutableInfo = nullptr;
+    if (pExecutableInfo)
+    {
+        local_pExecutableInfo = (VkPipelineExecutableInfoKHR*)pool->alloc(sizeof(const VkPipelineExecutableInfoKHR));
+        deepcopy_VkPipelineExecutableInfoKHR(pool, pExecutableInfo, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo));
+    }
+    if (local_pExecutableInfo)
+    {
+        transform_tohost_VkPipelineExecutableInfoKHR(sResourceTracker, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPipelineExecutableInfoKHR(sFeatureBits, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pStatisticCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pStatistics)
+        {
+            if ((pStatisticCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pStatisticCount)); ++i)
+                {
+                    count_VkPipelineExecutableStatisticKHR(sFeatureBits, (VkPipelineExecutableStatisticKHR*)(pStatistics + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPipelineExecutableStatisticsKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPipelineExecutableStatisticsKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPipelineExecutableStatisticsKHR = OP_vkGetPipelineExecutableStatisticsKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPipelineExecutableStatisticsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPipelineExecutableStatisticsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkPipelineExecutableInfoKHR(stream, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pStatisticCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pStatisticCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pStatisticCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pStatistics;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pStatistics)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pStatisticCount)); ++i)
+        {
+            reservedmarshal_VkPipelineExecutableStatisticKHR(stream, (VkPipelineExecutableStatisticKHR*)(pStatistics + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pStatisticCount;
+    check_pStatisticCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pStatisticCount)
+    {
+        if (!(check_pStatisticCount))
+        {
+            fprintf(stderr, "fatal: pStatisticCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pStatisticCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkPipelineExecutableStatisticKHR* check_pStatistics;
+    check_pStatistics = (VkPipelineExecutableStatisticKHR*)(uintptr_t)stream->getBe64();
+    if (pStatistics)
+    {
+        if (!(check_pStatistics))
+        {
+            fprintf(stderr, "fatal: pStatistics inconsistent between guest and host\n");
+        }
+        if ((pStatisticCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pStatisticCount)); ++i)
+            {
+                unmarshal_VkPipelineExecutableStatisticKHR(stream, (VkPipelineExecutableStatisticKHR*)(pStatistics + i));
+            }
+        }
+    }
+    if ((pStatisticCount) != nullptr)
+    {
+        if (pStatistics)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pStatisticCount)); ++i)
+            {
+                transform_fromhost_VkPipelineExecutableStatisticKHR(sResourceTracker, (VkPipelineExecutableStatisticKHR*)(pStatistics + i));
+            }
+        }
+    }
+    VkResult vkGetPipelineExecutableStatisticsKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPipelineExecutableStatisticsKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPipelineExecutableStatisticsKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetPipelineExecutableInternalRepresentationsKHR(
+    VkDevice device,
+    const VkPipelineExecutableInfoKHR* pExecutableInfo,
+    uint32_t* pInternalRepresentationCount,
+    VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipelineExecutableInfoKHR* local_pExecutableInfo;
+    local_device = device;
+    local_pExecutableInfo = nullptr;
+    if (pExecutableInfo)
+    {
+        local_pExecutableInfo = (VkPipelineExecutableInfoKHR*)pool->alloc(sizeof(const VkPipelineExecutableInfoKHR));
+        deepcopy_VkPipelineExecutableInfoKHR(pool, pExecutableInfo, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo));
+    }
+    if (local_pExecutableInfo)
+    {
+        transform_tohost_VkPipelineExecutableInfoKHR(sResourceTracker, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPipelineExecutableInfoKHR(sFeatureBits, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pInternalRepresentationCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pInternalRepresentations)
+        {
+            if ((pInternalRepresentationCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pInternalRepresentationCount)); ++i)
+                {
+                    count_VkPipelineExecutableInternalRepresentationKHR(sFeatureBits, (VkPipelineExecutableInternalRepresentationKHR*)(pInternalRepresentations + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPipelineExecutableInternalRepresentationsKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPipelineExecutableInternalRepresentationsKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPipelineExecutableInternalRepresentationsKHR = OP_vkGetPipelineExecutableInternalRepresentationsKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPipelineExecutableInternalRepresentationsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPipelineExecutableInternalRepresentationsKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkPipelineExecutableInfoKHR(stream, (VkPipelineExecutableInfoKHR*)(local_pExecutableInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pInternalRepresentationCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pInternalRepresentationCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pInternalRepresentationCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pInternalRepresentations;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pInternalRepresentations)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pInternalRepresentationCount)); ++i)
+        {
+            reservedmarshal_VkPipelineExecutableInternalRepresentationKHR(stream, (VkPipelineExecutableInternalRepresentationKHR*)(pInternalRepresentations + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pInternalRepresentationCount;
+    check_pInternalRepresentationCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pInternalRepresentationCount)
+    {
+        if (!(check_pInternalRepresentationCount))
+        {
+            fprintf(stderr, "fatal: pInternalRepresentationCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pInternalRepresentationCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkPipelineExecutableInternalRepresentationKHR* check_pInternalRepresentations;
+    check_pInternalRepresentations = (VkPipelineExecutableInternalRepresentationKHR*)(uintptr_t)stream->getBe64();
+    if (pInternalRepresentations)
+    {
+        if (!(check_pInternalRepresentations))
+        {
+            fprintf(stderr, "fatal: pInternalRepresentations inconsistent between guest and host\n");
+        }
+        if ((pInternalRepresentationCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pInternalRepresentationCount)); ++i)
+            {
+                unmarshal_VkPipelineExecutableInternalRepresentationKHR(stream, (VkPipelineExecutableInternalRepresentationKHR*)(pInternalRepresentations + i));
+            }
+        }
+    }
+    if ((pInternalRepresentationCount) != nullptr)
+    {
+        if (pInternalRepresentations)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pInternalRepresentationCount)); ++i)
+            {
+                transform_fromhost_VkPipelineExecutableInternalRepresentationKHR(sResourceTracker, (VkPipelineExecutableInternalRepresentationKHR*)(pInternalRepresentations + i));
+            }
+        }
+    }
+    VkResult vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return;
+}
+
+#endif
+#ifdef VK_KHR_pipeline_library
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void VkEncoder::vkCmdCopyBuffer2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyBufferInfo2KHR* pCopyBufferInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCopyBufferInfo2KHR* local_pCopyBufferInfo;
+    local_commandBuffer = commandBuffer;
+    local_pCopyBufferInfo = nullptr;
+    if (pCopyBufferInfo)
+    {
+        local_pCopyBufferInfo = (VkCopyBufferInfo2KHR*)pool->alloc(sizeof(const VkCopyBufferInfo2KHR));
+        deepcopy_VkCopyBufferInfo2KHR(pool, pCopyBufferInfo, (VkCopyBufferInfo2KHR*)(local_pCopyBufferInfo));
+    }
+    if (local_pCopyBufferInfo)
+    {
+        transform_tohost_VkCopyBufferInfo2KHR(sResourceTracker, (VkCopyBufferInfo2KHR*)(local_pCopyBufferInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCopyBufferInfo2KHR(sFeatureBits, (VkCopyBufferInfo2KHR*)(local_pCopyBufferInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCopyBuffer2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyBuffer2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyBuffer2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyBuffer2KHR = OP_vkCmdCopyBuffer2KHR;
+    memcpy(streamPtr, &opcode_vkCmdCopyBuffer2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyBuffer2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkCopyBufferInfo2KHR(stream, (VkCopyBufferInfo2KHR*)(local_pCopyBufferInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdCopyImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyImageInfo2KHR* pCopyImageInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCopyImageInfo2KHR* local_pCopyImageInfo;
+    local_commandBuffer = commandBuffer;
+    local_pCopyImageInfo = nullptr;
+    if (pCopyImageInfo)
+    {
+        local_pCopyImageInfo = (VkCopyImageInfo2KHR*)pool->alloc(sizeof(const VkCopyImageInfo2KHR));
+        deepcopy_VkCopyImageInfo2KHR(pool, pCopyImageInfo, (VkCopyImageInfo2KHR*)(local_pCopyImageInfo));
+    }
+    if (local_pCopyImageInfo)
+    {
+        transform_tohost_VkCopyImageInfo2KHR(sResourceTracker, (VkCopyImageInfo2KHR*)(local_pCopyImageInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCopyImageInfo2KHR(sFeatureBits, (VkCopyImageInfo2KHR*)(local_pCopyImageInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCopyImage2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyImage2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyImage2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyImage2KHR = OP_vkCmdCopyImage2KHR;
+    memcpy(streamPtr, &opcode_vkCmdCopyImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkCopyImageInfo2KHR(stream, (VkCopyImageInfo2KHR*)(local_pCopyImageInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdCopyBufferToImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCopyBufferToImageInfo2KHR* local_pCopyBufferToImageInfo;
+    local_commandBuffer = commandBuffer;
+    local_pCopyBufferToImageInfo = nullptr;
+    if (pCopyBufferToImageInfo)
+    {
+        local_pCopyBufferToImageInfo = (VkCopyBufferToImageInfo2KHR*)pool->alloc(sizeof(const VkCopyBufferToImageInfo2KHR));
+        deepcopy_VkCopyBufferToImageInfo2KHR(pool, pCopyBufferToImageInfo, (VkCopyBufferToImageInfo2KHR*)(local_pCopyBufferToImageInfo));
+    }
+    if (local_pCopyBufferToImageInfo)
+    {
+        transform_tohost_VkCopyBufferToImageInfo2KHR(sResourceTracker, (VkCopyBufferToImageInfo2KHR*)(local_pCopyBufferToImageInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCopyBufferToImageInfo2KHR(sFeatureBits, (VkCopyBufferToImageInfo2KHR*)(local_pCopyBufferToImageInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCopyBufferToImage2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyBufferToImage2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyBufferToImage2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyBufferToImage2KHR = OP_vkCmdCopyBufferToImage2KHR;
+    memcpy(streamPtr, &opcode_vkCmdCopyBufferToImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyBufferToImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkCopyBufferToImageInfo2KHR(stream, (VkCopyBufferToImageInfo2KHR*)(local_pCopyBufferToImageInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdCopyImageToBuffer2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCopyImageToBufferInfo2KHR* local_pCopyImageToBufferInfo;
+    local_commandBuffer = commandBuffer;
+    local_pCopyImageToBufferInfo = nullptr;
+    if (pCopyImageToBufferInfo)
+    {
+        local_pCopyImageToBufferInfo = (VkCopyImageToBufferInfo2KHR*)pool->alloc(sizeof(const VkCopyImageToBufferInfo2KHR));
+        deepcopy_VkCopyImageToBufferInfo2KHR(pool, pCopyImageToBufferInfo, (VkCopyImageToBufferInfo2KHR*)(local_pCopyImageToBufferInfo));
+    }
+    if (local_pCopyImageToBufferInfo)
+    {
+        transform_tohost_VkCopyImageToBufferInfo2KHR(sResourceTracker, (VkCopyImageToBufferInfo2KHR*)(local_pCopyImageToBufferInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCopyImageToBufferInfo2KHR(sFeatureBits, (VkCopyImageToBufferInfo2KHR*)(local_pCopyImageToBufferInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCopyImageToBuffer2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyImageToBuffer2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyImageToBuffer2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyImageToBuffer2KHR = OP_vkCmdCopyImageToBuffer2KHR;
+    memcpy(streamPtr, &opcode_vkCmdCopyImageToBuffer2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyImageToBuffer2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkCopyImageToBufferInfo2KHR(stream, (VkCopyImageToBufferInfo2KHR*)(local_pCopyImageToBufferInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBlitImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkBlitImageInfo2KHR* pBlitImageInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBlitImageInfo2KHR* local_pBlitImageInfo;
+    local_commandBuffer = commandBuffer;
+    local_pBlitImageInfo = nullptr;
+    if (pBlitImageInfo)
+    {
+        local_pBlitImageInfo = (VkBlitImageInfo2KHR*)pool->alloc(sizeof(const VkBlitImageInfo2KHR));
+        deepcopy_VkBlitImageInfo2KHR(pool, pBlitImageInfo, (VkBlitImageInfo2KHR*)(local_pBlitImageInfo));
+    }
+    if (local_pBlitImageInfo)
+    {
+        transform_tohost_VkBlitImageInfo2KHR(sResourceTracker, (VkBlitImageInfo2KHR*)(local_pBlitImageInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkBlitImageInfo2KHR(sFeatureBits, (VkBlitImageInfo2KHR*)(local_pBlitImageInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdBlitImage2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBlitImage2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBlitImage2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBlitImage2KHR = OP_vkCmdBlitImage2KHR;
+    memcpy(streamPtr, &opcode_vkCmdBlitImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBlitImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkBlitImageInfo2KHR(stream, (VkBlitImageInfo2KHR*)(local_pBlitImageInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdResolveImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkResolveImageInfo2KHR* pResolveImageInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkResolveImageInfo2KHR* local_pResolveImageInfo;
+    local_commandBuffer = commandBuffer;
+    local_pResolveImageInfo = nullptr;
+    if (pResolveImageInfo)
+    {
+        local_pResolveImageInfo = (VkResolveImageInfo2KHR*)pool->alloc(sizeof(const VkResolveImageInfo2KHR));
+        deepcopy_VkResolveImageInfo2KHR(pool, pResolveImageInfo, (VkResolveImageInfo2KHR*)(local_pResolveImageInfo));
+    }
+    if (local_pResolveImageInfo)
+    {
+        transform_tohost_VkResolveImageInfo2KHR(sResourceTracker, (VkResolveImageInfo2KHR*)(local_pResolveImageInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkResolveImageInfo2KHR(sFeatureBits, (VkResolveImageInfo2KHR*)(local_pResolveImageInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdResolveImage2KHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdResolveImage2KHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdResolveImage2KHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdResolveImage2KHR = OP_vkCmdResolveImage2KHR;
+    memcpy(streamPtr, &opcode_vkCmdResolveImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdResolveImage2KHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkResolveImageInfo2KHR(stream, (VkResolveImageInfo2KHR*)(local_pResolveImageInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
 #endif
 #ifdef VK_ANDROID_native_buffer
 VkResult VkEncoder::vkGetSwapchainGrallocUsageANDROID(
@@ -19632,7 +22485,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1050;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         *countPtr += sizeof(VkImageUsageFlags);
@@ -19646,9 +22499,9 @@
     memcpy(streamPtr, &opcode_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetSwapchainGrallocUsageANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1051;
-    *&cgen_var_1051 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1051, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -19696,14 +22549,14 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1052;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1053;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(int);
-        uint64_t cgen_var_1054;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1055;
+        uint64_t cgen_var_3;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkAcquireImageANDROID = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -19714,23 +22567,23 @@
     memcpy(streamPtr, &opcode_vkAcquireImageANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkAcquireImageANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1056;
-    *&cgen_var_1056 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1056, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1057;
-    *&cgen_var_1057 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1057, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (int*)&local_nativeFenceFd, sizeof(int));
     *streamPtrPtr += sizeof(int);
-    uint64_t cgen_var_1058;
-    *&cgen_var_1058 = get_host_u64_VkSemaphore((*&local_semaphore));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1058, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkSemaphore((*&local_semaphore));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1059;
-    *&cgen_var_1059 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1059, 1 * 8);
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_3, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
     stream->read(&vkAcquireImageANDROID_VkResult_return, sizeof(VkResult));
@@ -19769,7 +22622,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1060;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         // WARNING PTR CHECK
@@ -19781,7 +22634,7 @@
                 *countPtr += ((waitSemaphoreCount)) * 8;
             }
         }
-        uint64_t cgen_var_1062;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(int);
     }
@@ -19793,33 +22646,33 @@
     memcpy(streamPtr, &opcode_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueSignalReleaseImageANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1063;
-    *&cgen_var_1063 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1063, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_waitSemaphoreCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1064 = (uint64_t)(uintptr_t)local_pWaitSemaphores;
-    memcpy((*streamPtrPtr), &cgen_var_1064, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pWaitSemaphores;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pWaitSemaphores)
     {
         if (((waitSemaphoreCount)))
         {
-            uint8_t* cgen_var_1065_ptr = (uint8_t*)(*streamPtrPtr);
+            uint8_t* cgen_var_1_0_ptr = (uint8_t*)(*streamPtrPtr);
             for (uint32_t k = 0; k < ((waitSemaphoreCount)); ++k)
             {
                 uint64_t tmpval = get_host_u64_VkSemaphore(local_pWaitSemaphores[k]);
-                memcpy(cgen_var_1065_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                memcpy(cgen_var_1_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
             }
             *streamPtrPtr += 8 * ((waitSemaphoreCount));
         }
     }
-    uint64_t cgen_var_1066;
-    *&cgen_var_1066 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1066, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (int*)pNativeFenceFd, sizeof(int));
     *streamPtrPtr += sizeof(int);
@@ -19879,7 +22732,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1067;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugReportCallbackCreateInfoEXT(sFeatureBits, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -19888,7 +22741,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1068;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDebugReportCallbackEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -19899,14 +22752,14 @@
     memcpy(streamPtr, &opcode_vkCreateDebugReportCallbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDebugReportCallbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1069;
-    *&cgen_var_1069 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1069, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugReportCallbackCreateInfoEXT(stream, (VkDebugReportCallbackCreateInfoEXT*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1070 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1070, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -19914,15 +22767,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1071;
-    *&cgen_var_1071 = (uint64_t)((*pCallback));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1071, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pCallback));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1072;
-    stream->read((uint64_t*)&cgen_var_1072, 8);
-    stream->handleMapping()->mapHandles_u64_VkDebugReportCallbackEXT(&cgen_var_1072, (VkDebugReportCallbackEXT*)pCallback, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDebugReportCallbackEXT(&cgen_var_3, (VkDebugReportCallbackEXT*)pCallback, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDebugReportCallbackEXT_VkResult_return, sizeof(VkResult));
@@ -19966,9 +22819,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1073;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1074;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -19985,17 +22838,17 @@
     memcpy(streamPtr, &opcode_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyDebugReportCallbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1075;
-    *&cgen_var_1075 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1075, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1076;
-    *&cgen_var_1076 = get_host_u64_VkDebugReportCallbackEXT((*&local_callback));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1076, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDebugReportCallbackEXT((*&local_callback));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1077 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1077, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -20050,7 +22903,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1078;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDebugReportFlagsEXT);
         *countPtr += sizeof(VkDebugReportObjectTypeEXT);
@@ -20068,9 +22921,9 @@
     memcpy(streamPtr, &opcode_vkDebugReportMessageEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDebugReportMessageEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1079;
-    *&cgen_var_1079 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1079, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDebugReportFlagsEXT*)&local_flags, sizeof(VkDebugReportFlagsEXT));
     *streamPtrPtr += sizeof(VkDebugReportFlagsEXT);
@@ -20078,8 +22931,8 @@
     *streamPtrPtr += sizeof(VkDebugReportObjectTypeEXT);
     memcpy(*streamPtrPtr, (uint64_t*)&local_object, sizeof(uint64_t));
     *streamPtrPtr += sizeof(uint64_t);
-    uint64_t cgen_var_1080 = (uint64_t)local_location;
-    memcpy((*streamPtrPtr), &cgen_var_1080, 8);
+    uint64_t cgen_var_1 = (uint64_t)local_location;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     memcpy(*streamPtrPtr, (int32_t*)&local_messageCode, sizeof(int32_t));
@@ -20150,7 +23003,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1081;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugMarkerObjectTagInfoEXT(sFeatureBits, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo), countPtr);
     }
@@ -20162,9 +23015,9 @@
     memcpy(streamPtr, &opcode_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDebugMarkerSetObjectTagEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1082;
-    *&cgen_var_1082 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1082, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugMarkerObjectTagInfoEXT(stream, (VkDebugMarkerObjectTagInfoEXT*)(local_pTagInfo), streamPtrPtr);
     VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
@@ -20205,7 +23058,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1083;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugMarkerObjectNameInfoEXT(sFeatureBits, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo), countPtr);
     }
@@ -20217,9 +23070,9 @@
     memcpy(streamPtr, &opcode_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDebugMarkerSetObjectNameEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1084;
-    *&cgen_var_1084 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1084, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugMarkerObjectNameInfoEXT(stream, (VkDebugMarkerObjectNameInfoEXT*)(local_pNameInfo), streamPtrPtr);
     VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
@@ -20260,7 +23113,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1085;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugMarkerMarkerInfoEXT(sFeatureBits, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo), countPtr);
     }
@@ -20273,9 +23126,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDebugMarkerBeginEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1086;
-        *&cgen_var_1086 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1086, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo), streamPtrPtr);
@@ -20302,7 +23155,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1087;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkCmdDebugMarkerEndEXT = 4 + 4 + count;
@@ -20314,9 +23167,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDebugMarkerEndEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1088;
-        *&cgen_var_1088 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1088, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     ++encodeCount;;
@@ -20354,7 +23207,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1089;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugMarkerMarkerInfoEXT(sFeatureBits, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo), countPtr);
     }
@@ -20367,9 +23220,9 @@
     memcpy(streamPtr, &packetSize_vkCmdDebugMarkerInsertEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1090;
-        *&cgen_var_1090 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1090, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkDebugMarkerMarkerInfoEXT(stream, (VkDebugMarkerMarkerInfoEXT*)(local_pMarkerInfo), streamPtrPtr);
@@ -20387,6 +23240,633 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 #endif
+#ifdef VK_EXT_transform_feedback
+void VkEncoder::vkCmdBindTransformFeedbackBuffersEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstBinding,
+    uint32_t bindingCount,
+    const VkBuffer* pBuffers,
+    const VkDeviceSize* pOffsets,
+    const VkDeviceSize* pSizes,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_firstBinding;
+    uint32_t local_bindingCount;
+    VkBuffer* local_pBuffers;
+    VkDeviceSize* local_pOffsets;
+    VkDeviceSize* local_pSizes;
+    local_commandBuffer = commandBuffer;
+    local_firstBinding = firstBinding;
+    local_bindingCount = bindingCount;
+    // Avoiding deepcopy for pBuffers
+    local_pBuffers = (VkBuffer*)pBuffers;
+    // Avoiding deepcopy for pOffsets
+    local_pOffsets = (VkDeviceSize*)pOffsets;
+    // Avoiding deepcopy for pSizes
+    local_pSizes = (VkDeviceSize*)pSizes;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        if (((bindingCount)))
+        {
+            *countPtr += ((bindingCount)) * 8;
+        }
+        *countPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pSizes)
+        {
+            *countPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+        }
+    }
+    uint32_t packetSize_vkCmdBindTransformFeedbackBuffersEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBindTransformFeedbackBuffersEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBindTransformFeedbackBuffersEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBindTransformFeedbackBuffersEXT = OP_vkCmdBindTransformFeedbackBuffersEXT;
+    memcpy(streamPtr, &opcode_vkCmdBindTransformFeedbackBuffersEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBindTransformFeedbackBuffersEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstBinding, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_bindingCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    if (((bindingCount)))
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
+        for (uint32_t k = 0; k < ((bindingCount)); ++k)
+        {
+            uint64_t tmpval = get_host_u64_VkBuffer(local_pBuffers[k]);
+            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((bindingCount));
+    }
+    memcpy(*streamPtrPtr, (VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize));
+    *streamPtrPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pSizes;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pSizes)
+    {
+        memcpy(*streamPtrPtr, (VkDeviceSize*)local_pSizes, ((bindingCount)) * sizeof(VkDeviceSize));
+        *streamPtrPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBeginTransformFeedbackEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstCounterBuffer,
+    uint32_t counterBufferCount,
+    const VkBuffer* pCounterBuffers,
+    const VkDeviceSize* pCounterBufferOffsets,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_firstCounterBuffer;
+    uint32_t local_counterBufferCount;
+    VkBuffer* local_pCounterBuffers;
+    VkDeviceSize* local_pCounterBufferOffsets;
+    local_commandBuffer = commandBuffer;
+    local_firstCounterBuffer = firstCounterBuffer;
+    local_counterBufferCount = counterBufferCount;
+    // Avoiding deepcopy for pCounterBuffers
+    local_pCounterBuffers = (VkBuffer*)pCounterBuffers;
+    // Avoiding deepcopy for pCounterBufferOffsets
+    local_pCounterBufferOffsets = (VkDeviceSize*)pCounterBufferOffsets;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pCounterBuffers)
+        {
+            if (((counterBufferCount)))
+            {
+                *countPtr += ((counterBufferCount)) * 8;
+            }
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pCounterBufferOffsets)
+        {
+            *countPtr += ((counterBufferCount)) * sizeof(VkDeviceSize);
+        }
+    }
+    uint32_t packetSize_vkCmdBeginTransformFeedbackEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBeginTransformFeedbackEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBeginTransformFeedbackEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBeginTransformFeedbackEXT = OP_vkCmdBeginTransformFeedbackEXT;
+    memcpy(streamPtr, &opcode_vkCmdBeginTransformFeedbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBeginTransformFeedbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstCounterBuffer, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_counterBufferCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pCounterBuffers;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pCounterBuffers)
+    {
+        if (((counterBufferCount)))
+        {
+            uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*streamPtrPtr);
+            for (uint32_t k = 0; k < ((counterBufferCount)); ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkBuffer(local_pCounterBuffers[k]);
+                memcpy(cgen_var_0_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+            *streamPtrPtr += 8 * ((counterBufferCount));
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pCounterBufferOffsets;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pCounterBufferOffsets)
+    {
+        memcpy(*streamPtrPtr, (VkDeviceSize*)local_pCounterBufferOffsets, ((counterBufferCount)) * sizeof(VkDeviceSize));
+        *streamPtrPtr += ((counterBufferCount)) * sizeof(VkDeviceSize);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdEndTransformFeedbackEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstCounterBuffer,
+    uint32_t counterBufferCount,
+    const VkBuffer* pCounterBuffers,
+    const VkDeviceSize* pCounterBufferOffsets,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_firstCounterBuffer;
+    uint32_t local_counterBufferCount;
+    VkBuffer* local_pCounterBuffers;
+    VkDeviceSize* local_pCounterBufferOffsets;
+    local_commandBuffer = commandBuffer;
+    local_firstCounterBuffer = firstCounterBuffer;
+    local_counterBufferCount = counterBufferCount;
+    // Avoiding deepcopy for pCounterBuffers
+    local_pCounterBuffers = (VkBuffer*)pCounterBuffers;
+    // Avoiding deepcopy for pCounterBufferOffsets
+    local_pCounterBufferOffsets = (VkDeviceSize*)pCounterBufferOffsets;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pCounterBuffers)
+        {
+            if (((counterBufferCount)))
+            {
+                *countPtr += ((counterBufferCount)) * 8;
+            }
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pCounterBufferOffsets)
+        {
+            *countPtr += ((counterBufferCount)) * sizeof(VkDeviceSize);
+        }
+    }
+    uint32_t packetSize_vkCmdEndTransformFeedbackEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdEndTransformFeedbackEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdEndTransformFeedbackEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdEndTransformFeedbackEXT = OP_vkCmdEndTransformFeedbackEXT;
+    memcpy(streamPtr, &opcode_vkCmdEndTransformFeedbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdEndTransformFeedbackEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstCounterBuffer, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_counterBufferCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pCounterBuffers;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pCounterBuffers)
+    {
+        if (((counterBufferCount)))
+        {
+            uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*streamPtrPtr);
+            for (uint32_t k = 0; k < ((counterBufferCount)); ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkBuffer(local_pCounterBuffers[k]);
+                memcpy(cgen_var_0_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+            *streamPtrPtr += 8 * ((counterBufferCount));
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pCounterBufferOffsets;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pCounterBufferOffsets)
+    {
+        memcpy(*streamPtrPtr, (VkDeviceSize*)local_pCounterBufferOffsets, ((counterBufferCount)) * sizeof(VkDeviceSize));
+        *streamPtrPtr += ((counterBufferCount)) * sizeof(VkDeviceSize);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBeginQueryIndexedEXT(
+    VkCommandBuffer commandBuffer,
+    VkQueryPool queryPool,
+    uint32_t query,
+    VkQueryControlFlags flags,
+    uint32_t index,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkQueryPool local_queryPool;
+    uint32_t local_query;
+    VkQueryControlFlags local_flags;
+    uint32_t local_index;
+    local_commandBuffer = commandBuffer;
+    local_queryPool = queryPool;
+    local_query = query;
+    local_flags = flags;
+    local_index = index;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(VkQueryControlFlags);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdBeginQueryIndexedEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBeginQueryIndexedEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBeginQueryIndexedEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBeginQueryIndexedEXT = OP_vkCmdBeginQueryIndexedEXT;
+    memcpy(streamPtr, &opcode_vkCmdBeginQueryIndexedEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBeginQueryIndexedEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_query, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (VkQueryControlFlags*)&local_flags, sizeof(VkQueryControlFlags));
+    *streamPtrPtr += sizeof(VkQueryControlFlags);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_index, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdEndQueryIndexedEXT(
+    VkCommandBuffer commandBuffer,
+    VkQueryPool queryPool,
+    uint32_t query,
+    uint32_t index,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkQueryPool local_queryPool;
+    uint32_t local_query;
+    uint32_t local_index;
+    local_commandBuffer = commandBuffer;
+    local_queryPool = queryPool;
+    local_query = query;
+    local_index = index;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdEndQueryIndexedEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdEndQueryIndexedEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdEndQueryIndexedEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdEndQueryIndexedEXT = OP_vkCmdEndQueryIndexedEXT;
+    memcpy(streamPtr, &opcode_vkCmdEndQueryIndexedEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdEndQueryIndexedEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_query, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_index, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdDrawIndirectByteCountEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t instanceCount,
+    uint32_t firstInstance,
+    VkBuffer counterBuffer,
+    VkDeviceSize counterBufferOffset,
+    uint32_t counterOffset,
+    uint32_t vertexStride,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_instanceCount;
+    uint32_t local_firstInstance;
+    VkBuffer local_counterBuffer;
+    VkDeviceSize local_counterBufferOffset;
+    uint32_t local_counterOffset;
+    uint32_t local_vertexStride;
+    local_commandBuffer = commandBuffer;
+    local_instanceCount = instanceCount;
+    local_firstInstance = firstInstance;
+    local_counterBuffer = counterBuffer;
+    local_counterBufferOffset = counterBufferOffset;
+    local_counterOffset = counterOffset;
+    local_vertexStride = vertexStride;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdDrawIndirectByteCountEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawIndirectByteCountEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawIndirectByteCountEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawIndirectByteCountEXT = OP_vkCmdDrawIndirectByteCountEXT;
+    memcpy(streamPtr, &opcode_vkCmdDrawIndirectByteCountEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawIndirectByteCountEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_instanceCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstInstance, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_counterBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_counterBufferOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_counterOffset, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_vertexStride, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_NVX_image_view_handle
+uint32_t VkEncoder::vkGetImageViewHandleNVX(
+    VkDevice device,
+    const VkImageViewHandleInfoNVX* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkImageViewHandleInfoNVX* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkImageViewHandleInfoNVX*)pool->alloc(sizeof(const VkImageViewHandleInfoNVX));
+        deepcopy_VkImageViewHandleInfoNVX(pool, pInfo, (VkImageViewHandleInfoNVX*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkImageViewHandleInfoNVX(sResourceTracker, (VkImageViewHandleInfoNVX*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkImageViewHandleInfoNVX(sFeatureBits, (VkImageViewHandleInfoNVX*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetImageViewHandleNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetImageViewHandleNVX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetImageViewHandleNVX = OP_vkGetImageViewHandleNVX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetImageViewHandleNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetImageViewHandleNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkImageViewHandleInfoNVX(stream, (VkImageViewHandleInfoNVX*)(local_pInfo), streamPtrPtr);
+    uint32_t vkGetImageViewHandleNVX_uint32_t_return = (uint32_t)0;
+    stream->read(&vkGetImageViewHandleNVX_uint32_t_return, sizeof(uint32_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetImageViewHandleNVX_uint32_t_return;
+}
+
+VkResult VkEncoder::vkGetImageViewAddressNVX(
+    VkDevice device,
+    VkImageView imageView,
+    VkImageViewAddressPropertiesNVX* pProperties,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkImageView local_imageView;
+    local_device = device;
+    local_imageView = imageView;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        count_VkImageViewAddressPropertiesNVX(sFeatureBits, (VkImageViewAddressPropertiesNVX*)(pProperties), countPtr);
+    }
+    uint32_t packetSize_vkGetImageViewAddressNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetImageViewAddressNVX);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetImageViewAddressNVX = OP_vkGetImageViewAddressNVX;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetImageViewAddressNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetImageViewAddressNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImageView((*&local_imageView));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkImageViewAddressPropertiesNVX(stream, (VkImageViewAddressPropertiesNVX*)(pProperties), streamPtrPtr);
+    unmarshal_VkImageViewAddressPropertiesNVX(stream, (VkImageViewAddressPropertiesNVX*)(pProperties));
+    if (pProperties)
+    {
+        transform_fromhost_VkImageViewAddressPropertiesNVX(sResourceTracker, (VkImageViewAddressPropertiesNVX*)(pProperties));
+    }
+    VkResult vkGetImageViewAddressNVX_VkResult_return = (VkResult)0;
+    stream->read(&vkGetImageViewAddressNVX_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetImageViewAddressNVX_VkResult_return;
+}
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 void VkEncoder::vkCmdDrawIndirectCountAMD(
     VkCommandBuffer commandBuffer,
@@ -20420,12 +23900,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1091;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1092;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
-        uint64_t cgen_var_1093;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(uint32_t);
@@ -20440,20 +23920,20 @@
     memcpy(streamPtr, &packetSize_vkCmdDrawIndirectCountAMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1094;
-        *&cgen_var_1094 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1094, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_1095;
-    *&cgen_var_1095 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1095, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
-    uint64_t cgen_var_1096;
-    *&cgen_var_1096 = get_host_u64_VkBuffer((*&local_countBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1096, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_countBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -20502,12 +23982,12 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1097;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1098;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
-        uint64_t cgen_var_1099;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(uint32_t);
@@ -20522,20 +24002,20 @@
     memcpy(streamPtr, &packetSize_vkCmdDrawIndexedIndirectCountAMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1100;
-        *&cgen_var_1100 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1100, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
-    uint64_t cgen_var_1101;
-    *&cgen_var_1101 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1101, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
-    uint64_t cgen_var_1102;
-    *&cgen_var_1102 = get_host_u64_VkBuffer((*&local_countBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1102, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_countBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -20587,9 +24067,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1103;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1104;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkShaderStageFlagBits);
         *countPtr += sizeof(VkShaderInfoTypeAMD);
@@ -20603,7 +24083,10 @@
         *countPtr += 8;
         if (pInfo)
         {
-            *countPtr += (*(pInfoSize)) * sizeof(uint8_t);
+            if ((pInfoSize) != nullptr)
+            {
+                *countPtr += (*(pInfoSize)) * sizeof(uint8_t);
+            }
         }
     }
     uint32_t packetSize_vkGetShaderInfoAMD = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -20614,33 +24097,33 @@
     memcpy(streamPtr, &opcode_vkGetShaderInfoAMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetShaderInfoAMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1105;
-    *&cgen_var_1105 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1105, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1106;
-    *&cgen_var_1106 = get_host_u64_VkPipeline((*&local_pipeline));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1106, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkShaderStageFlagBits*)&local_shaderStage, sizeof(VkShaderStageFlagBits));
     *streamPtrPtr += sizeof(VkShaderStageFlagBits);
     memcpy(*streamPtrPtr, (VkShaderInfoTypeAMD*)&local_infoType, sizeof(VkShaderInfoTypeAMD));
     *streamPtrPtr += sizeof(VkShaderInfoTypeAMD);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1107 = (uint64_t)(uintptr_t)pInfoSize;
-    memcpy((*streamPtrPtr), &cgen_var_1107, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pInfoSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pInfoSize)
     {
-        uint64_t cgen_var_1108 = (uint64_t)(*pInfoSize);
-        memcpy((*streamPtrPtr), &cgen_var_1108, 8);
+        uint64_t cgen_var_2_0 = (uint64_t)(*pInfoSize);
+        memcpy((*streamPtrPtr), &cgen_var_2_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
         *streamPtrPtr += 8;
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1109 = (uint64_t)(uintptr_t)pInfo;
-    memcpy((*streamPtrPtr), &cgen_var_1109, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pInfo;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pInfo)
@@ -20685,6 +24168,105 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+VkResult VkEncoder::vkCreateStreamDescriptorSurfaceGGP(
+    VkInstance instance,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkInstance local_instance;
+    VkStreamDescriptorSurfaceCreateInfoGGP* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_instance = instance;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkStreamDescriptorSurfaceCreateInfoGGP*)pool->alloc(sizeof(const VkStreamDescriptorSurfaceCreateInfoGGP));
+        deepcopy_VkStreamDescriptorSurfaceCreateInfoGGP(pool, pCreateInfo, (VkStreamDescriptorSurfaceCreateInfoGGP*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkStreamDescriptorSurfaceCreateInfoGGP(sResourceTracker, (VkStreamDescriptorSurfaceCreateInfoGGP*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkStreamDescriptorSurfaceCreateInfoGGP(sFeatureBits, (VkStreamDescriptorSurfaceCreateInfoGGP*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateStreamDescriptorSurfaceGGP = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateStreamDescriptorSurfaceGGP);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateStreamDescriptorSurfaceGGP = OP_vkCreateStreamDescriptorSurfaceGGP;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateStreamDescriptorSurfaceGGP, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateStreamDescriptorSurfaceGGP, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkStreamDescriptorSurfaceCreateInfoGGP(stream, (VkStreamDescriptorSurfaceCreateInfoGGP*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
+    VkResult vkCreateStreamDescriptorSurfaceGGP_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateStreamDescriptorSurfaceGGP_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateStreamDescriptorSurfaceGGP_VkResult_return;
+}
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -20721,7 +24303,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1113;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         *countPtr += sizeof(VkImageType);
@@ -20739,9 +24321,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceExternalImageFormatPropertiesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1114;
-    *&cgen_var_1114 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1114, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -20799,9 +24381,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1115;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1116;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkExternalMemoryHandleTypeFlagsNV);
         *countPtr += sizeof(HANDLE);
@@ -20814,13 +24396,13 @@
     memcpy(streamPtr, &opcode_vkGetMemoryWin32HandleNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryWin32HandleNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1117;
-    *&cgen_var_1117 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1117, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1118;
-    *&cgen_var_1118 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1118, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkExternalMemoryHandleTypeFlagsNV*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagsNV));
     *streamPtrPtr += sizeof(VkExternalMemoryHandleTypeFlagsNV);
@@ -20885,7 +24467,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1119;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkViSurfaceCreateInfoNN(sFeatureBits, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -20894,7 +24476,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1120;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateViSurfaceNN = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -20905,14 +24487,14 @@
     memcpy(streamPtr, &opcode_vkCreateViSurfaceNN, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateViSurfaceNN, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1121;
-    *&cgen_var_1121 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1121, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkViSurfaceCreateInfoNN(stream, (VkViSurfaceCreateInfoNN*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1122 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1122, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -20920,14 +24502,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1123;
-    *&cgen_var_1123 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1123, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_1124;
-    stream->read((uint64_t*)&cgen_var_1124, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1124, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
     stream->read(&vkCreateViSurfaceNN_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -20945,6 +24527,10 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+#endif
+#ifdef VK_EXT_astc_decode_mode
+#endif
 #ifdef VK_EXT_conditional_rendering
 void VkEncoder::vkCmdBeginConditionalRenderingEXT(
     VkCommandBuffer commandBuffer,
@@ -20972,7 +24558,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1125;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkConditionalRenderingBeginInfoEXT(sFeatureBits, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin), countPtr);
     }
@@ -20985,9 +24571,9 @@
     memcpy(streamPtr, &packetSize_vkCmdBeginConditionalRenderingEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1126;
-        *&cgen_var_1126 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1126, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkConditionalRenderingBeginInfoEXT(stream, (VkConditionalRenderingBeginInfoEXT*)(local_pConditionalRenderingBegin), streamPtrPtr);
@@ -21014,7 +24600,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1127;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkCmdEndConditionalRenderingEXT = 4 + 4 + count;
@@ -21026,9 +24612,9 @@
     memcpy(streamPtr, &packetSize_vkCmdEndConditionalRenderingEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1128;
-        *&cgen_var_1128 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1128, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     ++encodeCount;;
@@ -21041,657 +24627,6 @@
 }
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void VkEncoder::vkCmdProcessCommandsNVX(
-    VkCommandBuffer commandBuffer,
-    const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkCommandBuffer local_commandBuffer;
-    VkCmdProcessCommandsInfoNVX* local_pProcessCommandsInfo;
-    local_commandBuffer = commandBuffer;
-    local_pProcessCommandsInfo = nullptr;
-    if (pProcessCommandsInfo)
-    {
-        local_pProcessCommandsInfo = (VkCmdProcessCommandsInfoNVX*)pool->alloc(sizeof(const VkCmdProcessCommandsInfoNVX));
-        deepcopy_VkCmdProcessCommandsInfoNVX(pool, pProcessCommandsInfo, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
-    }
-    if (local_pProcessCommandsInfo)
-    {
-        transform_tohost_VkCmdProcessCommandsInfoNVX(sResourceTracker, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1129;
-        *countPtr += 1 * 8;
-        count_VkCmdProcessCommandsInfoNVX(sFeatureBits, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo), countPtr);
-    }
-    uint32_t packetSize_vkCmdProcessCommandsNVX = 4 + 4 + count;
-    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdProcessCommandsNVX -= 8;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdProcessCommandsNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkCmdProcessCommandsNVX = OP_vkCmdProcessCommandsNVX;
-    memcpy(streamPtr, &opcode_vkCmdProcessCommandsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkCmdProcessCommandsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (!queueSubmitWithCommandsEnabled)
-    {
-        uint64_t cgen_var_1130;
-        *&cgen_var_1130 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1130, 1 * 8);
-        *streamPtrPtr += 1 * 8;
-    }
-    reservedmarshal_VkCmdProcessCommandsInfoNVX(stream, (VkCmdProcessCommandsInfoNVX*)(local_pProcessCommandsInfo), streamPtrPtr);
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-void VkEncoder::vkCmdReserveSpaceForCommandsNVX(
-    VkCommandBuffer commandBuffer,
-    const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkCommandBuffer local_commandBuffer;
-    VkCmdReserveSpaceForCommandsInfoNVX* local_pReserveSpaceInfo;
-    local_commandBuffer = commandBuffer;
-    local_pReserveSpaceInfo = nullptr;
-    if (pReserveSpaceInfo)
-    {
-        local_pReserveSpaceInfo = (VkCmdReserveSpaceForCommandsInfoNVX*)pool->alloc(sizeof(const VkCmdReserveSpaceForCommandsInfoNVX));
-        deepcopy_VkCmdReserveSpaceForCommandsInfoNVX(pool, pReserveSpaceInfo, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
-    }
-    if (local_pReserveSpaceInfo)
-    {
-        transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(sResourceTracker, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1131;
-        *countPtr += 1 * 8;
-        count_VkCmdReserveSpaceForCommandsInfoNVX(sFeatureBits, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo), countPtr);
-    }
-    uint32_t packetSize_vkCmdReserveSpaceForCommandsNVX = 4 + 4 + count;
-    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdReserveSpaceForCommandsNVX -= 8;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdReserveSpaceForCommandsNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkCmdReserveSpaceForCommandsNVX = OP_vkCmdReserveSpaceForCommandsNVX;
-    memcpy(streamPtr, &opcode_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkCmdReserveSpaceForCommandsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (!queueSubmitWithCommandsEnabled)
-    {
-        uint64_t cgen_var_1132;
-        *&cgen_var_1132 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1132, 1 * 8);
-        *streamPtrPtr += 1 * 8;
-    }
-    reservedmarshal_VkCmdReserveSpaceForCommandsInfoNVX(stream, (VkCmdReserveSpaceForCommandsInfoNVX*)(local_pReserveSpaceInfo), streamPtrPtr);
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-VkResult VkEncoder::vkCreateIndirectCommandsLayoutNVX(
-    VkDevice device,
-    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    VkIndirectCommandsLayoutCreateInfoNVX* local_pCreateInfo;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_pCreateInfo = nullptr;
-    if (pCreateInfo)
-    {
-        local_pCreateInfo = (VkIndirectCommandsLayoutCreateInfoNVX*)pool->alloc(sizeof(const VkIndirectCommandsLayoutCreateInfoNVX));
-        deepcopy_VkIndirectCommandsLayoutCreateInfoNVX(pool, pCreateInfo, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
-    }
-    local_pAllocator = nullptr;
-    if (pAllocator)
-    {
-        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
-        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    local_pAllocator = nullptr;
-    if (local_pCreateInfo)
-    {
-        transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(sResourceTracker, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo));
-    }
-    if (local_pAllocator)
-    {
-        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1133;
-        *countPtr += 1 * 8;
-        count_VkIndirectCommandsLayoutCreateInfoNVX(sFeatureBits, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo), countPtr);
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (local_pAllocator)
-        {
-            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
-        }
-        uint64_t cgen_var_1134;
-        *countPtr += 8;
-    }
-    uint32_t packetSize_vkCreateIndirectCommandsLayoutNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateIndirectCommandsLayoutNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkCreateIndirectCommandsLayoutNVX = OP_vkCreateIndirectCommandsLayoutNVX;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkCreateIndirectCommandsLayoutNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1135;
-    *&cgen_var_1135 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1135, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkIndirectCommandsLayoutCreateInfoNVX(stream, (VkIndirectCommandsLayoutCreateInfoNVX*)(local_pCreateInfo), streamPtrPtr);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1136 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1136, 8);
-    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (local_pAllocator)
-    {
-        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
-    }
-    /* is handle, possibly out */;
-    uint64_t cgen_var_1137;
-    *&cgen_var_1137 = (uint64_t)((*pIndirectCommandsLayout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1137, 8);
-    *streamPtrPtr += 8;
-    /* is handle, possibly out */;
-    stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1138;
-    stream->read((uint64_t*)&cgen_var_1138, 8);
-    stream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_1138, (VkIndirectCommandsLayoutNVX*)pIndirectCommandsLayout, 1);
-    stream->unsetHandleMapping();
-    VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
-    stream->read(&vkCreateIndirectCommandsLayoutNVX_VkResult_return, sizeof(VkResult));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
-}
-
-void VkEncoder::vkDestroyIndirectCommandsLayoutNVX(
-    VkDevice device,
-    VkIndirectCommandsLayoutNVX indirectCommandsLayout,
-    const VkAllocationCallbacks* pAllocator,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    VkIndirectCommandsLayoutNVX local_indirectCommandsLayout;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_indirectCommandsLayout = indirectCommandsLayout;
-    local_pAllocator = nullptr;
-    if (pAllocator)
-    {
-        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
-        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    local_pAllocator = nullptr;
-    if (local_pAllocator)
-    {
-        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1139;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_1140;
-        *countPtr += 1 * 8;
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (local_pAllocator)
-        {
-            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
-        }
-    }
-    uint32_t packetSize_vkDestroyIndirectCommandsLayoutNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyIndirectCommandsLayoutNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkDestroyIndirectCommandsLayoutNVX = OP_vkDestroyIndirectCommandsLayoutNVX;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkDestroyIndirectCommandsLayoutNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1141;
-    *&cgen_var_1141 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1141, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1142;
-    *&cgen_var_1142 = get_host_u64_VkIndirectCommandsLayoutNVX((*&local_indirectCommandsLayout));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1142, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1143 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1143, 8);
-    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (local_pAllocator)
-    {
-        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
-    }
-    sResourceTracker->destroyMapping()->mapHandles_VkIndirectCommandsLayoutNVX((VkIndirectCommandsLayoutNVX*)&indirectCommandsLayout);
-    stream->flush();
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-VkResult VkEncoder::vkCreateObjectTableNVX(
-    VkDevice device,
-    const VkObjectTableCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkObjectTableNVX* pObjectTable,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    VkObjectTableCreateInfoNVX* local_pCreateInfo;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_pCreateInfo = nullptr;
-    if (pCreateInfo)
-    {
-        local_pCreateInfo = (VkObjectTableCreateInfoNVX*)pool->alloc(sizeof(const VkObjectTableCreateInfoNVX));
-        deepcopy_VkObjectTableCreateInfoNVX(pool, pCreateInfo, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
-    }
-    local_pAllocator = nullptr;
-    if (pAllocator)
-    {
-        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
-        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    local_pAllocator = nullptr;
-    if (local_pCreateInfo)
-    {
-        transform_tohost_VkObjectTableCreateInfoNVX(sResourceTracker, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo));
-    }
-    if (local_pAllocator)
-    {
-        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1144;
-        *countPtr += 1 * 8;
-        count_VkObjectTableCreateInfoNVX(sFeatureBits, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo), countPtr);
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (local_pAllocator)
-        {
-            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
-        }
-        uint64_t cgen_var_1145;
-        *countPtr += 8;
-    }
-    uint32_t packetSize_vkCreateObjectTableNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateObjectTableNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkCreateObjectTableNVX = OP_vkCreateObjectTableNVX;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkCreateObjectTableNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkCreateObjectTableNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1146;
-    *&cgen_var_1146 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1146, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkObjectTableCreateInfoNVX(stream, (VkObjectTableCreateInfoNVX*)(local_pCreateInfo), streamPtrPtr);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1147 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1147, 8);
-    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (local_pAllocator)
-    {
-        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
-    }
-    /* is handle, possibly out */;
-    uint64_t cgen_var_1148;
-    *&cgen_var_1148 = (uint64_t)((*pObjectTable));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1148, 8);
-    *streamPtrPtr += 8;
-    /* is handle, possibly out */;
-    stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1149;
-    stream->read((uint64_t*)&cgen_var_1149, 8);
-    stream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_1149, (VkObjectTableNVX*)pObjectTable, 1);
-    stream->unsetHandleMapping();
-    VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
-    stream->read(&vkCreateObjectTableNVX_VkResult_return, sizeof(VkResult));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkCreateObjectTableNVX_VkResult_return;
-}
-
-void VkEncoder::vkDestroyObjectTableNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    const VkAllocationCallbacks* pAllocator,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    VkObjectTableNVX local_objectTable;
-    VkAllocationCallbacks* local_pAllocator;
-    local_device = device;
-    local_objectTable = objectTable;
-    local_pAllocator = nullptr;
-    if (pAllocator)
-    {
-        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
-        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    local_pAllocator = nullptr;
-    if (local_pAllocator)
-    {
-        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
-    }
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1150;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_1151;
-        *countPtr += 1 * 8;
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (local_pAllocator)
-        {
-            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
-        }
-    }
-    uint32_t packetSize_vkDestroyObjectTableNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyObjectTableNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkDestroyObjectTableNVX = OP_vkDestroyObjectTableNVX;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkDestroyObjectTableNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkDestroyObjectTableNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1152;
-    *&cgen_var_1152 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1152, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1153;
-    *&cgen_var_1153 = get_host_u64_VkObjectTableNVX((*&local_objectTable));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1153, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1154 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1154, 8);
-    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (local_pAllocator)
-    {
-        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
-    }
-    sResourceTracker->destroyMapping()->mapHandles_VkObjectTableNVX((VkObjectTableNVX*)&objectTable);
-    stream->flush();
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-VkResult VkEncoder::vkRegisterObjectsNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    uint32_t objectCount,
-    const VkObjectTableEntryNVX* const* ppObjectTableEntries,
-    const uint32_t* pObjectIndices,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    VkObjectTableNVX local_objectTable;
-    uint32_t local_objectCount;
-    VkObjectTableEntryNVX** local_ppObjectTableEntries;
-    uint32_t* local_pObjectIndices;
-    local_device = device;
-    local_objectTable = objectTable;
-    local_objectCount = objectCount;
-    (void)ppObjectTableEntries;
-    // Avoiding deepcopy for pObjectIndices
-    local_pObjectIndices = (uint32_t*)pObjectIndices;
-    (void)local_ppObjectTableEntries;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1155;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_1156;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(uint32_t);
-        (void)local_ppObjectTableEntries;
-        *countPtr += ((objectCount)) * sizeof(uint32_t);
-    }
-    uint32_t packetSize_vkRegisterObjectsNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkRegisterObjectsNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkRegisterObjectsNVX = OP_vkRegisterObjectsNVX;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkRegisterObjectsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkRegisterObjectsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1157;
-    *&cgen_var_1157 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1157, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1158;
-    *&cgen_var_1158 = get_host_u64_VkObjectTableNVX((*&local_objectTable));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1158, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (uint32_t*)&local_objectCount, sizeof(uint32_t));
-    *streamPtrPtr += sizeof(uint32_t);
-    (void)local_ppObjectTableEntries;
-    memcpy(*streamPtrPtr, (uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
-    *streamPtrPtr += ((objectCount)) * sizeof(uint32_t);
-    VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
-    stream->read(&vkRegisterObjectsNVX_VkResult_return, sizeof(VkResult));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkRegisterObjectsNVX_VkResult_return;
-}
-
-VkResult VkEncoder::vkUnregisterObjectsNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    uint32_t objectCount,
-    const VkObjectEntryTypeNVX* pObjectEntryTypes,
-    const uint32_t* pObjectIndices,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkDevice local_device;
-    VkObjectTableNVX local_objectTable;
-    uint32_t local_objectCount;
-    VkObjectEntryTypeNVX* local_pObjectEntryTypes;
-    uint32_t* local_pObjectIndices;
-    local_device = device;
-    local_objectTable = objectTable;
-    local_objectCount = objectCount;
-    // Avoiding deepcopy for pObjectEntryTypes
-    local_pObjectEntryTypes = (VkObjectEntryTypeNVX*)pObjectEntryTypes;
-    // Avoiding deepcopy for pObjectIndices
-    local_pObjectIndices = (uint32_t*)pObjectIndices;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1159;
-        *countPtr += 1 * 8;
-        uint64_t cgen_var_1160;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(uint32_t);
-        *countPtr += ((objectCount)) * sizeof(VkObjectEntryTypeNVX);
-        *countPtr += ((objectCount)) * sizeof(uint32_t);
-    }
-    uint32_t packetSize_vkUnregisterObjectsNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkUnregisterObjectsNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkUnregisterObjectsNVX = OP_vkUnregisterObjectsNVX;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkUnregisterObjectsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkUnregisterObjectsNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1161;
-    *&cgen_var_1161 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1161, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1162;
-    *&cgen_var_1162 = get_host_u64_VkObjectTableNVX((*&local_objectTable));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1162, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (uint32_t*)&local_objectCount, sizeof(uint32_t));
-    *streamPtrPtr += sizeof(uint32_t);
-    memcpy(*streamPtrPtr, (VkObjectEntryTypeNVX*)local_pObjectEntryTypes, ((objectCount)) * sizeof(VkObjectEntryTypeNVX));
-    *streamPtrPtr += ((objectCount)) * sizeof(VkObjectEntryTypeNVX);
-    memcpy(*streamPtrPtr, (uint32_t*)local_pObjectIndices, ((objectCount)) * sizeof(uint32_t));
-    *streamPtrPtr += ((objectCount)) * sizeof(uint32_t);
-    VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
-    stream->read(&vkUnregisterObjectsNVX_VkResult_return, sizeof(VkResult));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkUnregisterObjectsNVX_VkResult_return;
-}
-
-void VkEncoder::vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
-    VkPhysicalDevice physicalDevice,
-    VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
-    VkDeviceGeneratedCommandsLimitsNVX* pLimits,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkPhysicalDevice local_physicalDevice;
-    local_physicalDevice = physicalDevice;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1163;
-        *countPtr += 1 * 8;
-        count_VkDeviceGeneratedCommandsFeaturesNVX(sFeatureBits, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures), countPtr);
-        count_VkDeviceGeneratedCommandsLimitsNVX(sFeatureBits, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits), countPtr);
-    }
-    uint32_t packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX = OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1164;
-    *&cgen_var_1164 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1164, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    reservedmarshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures), streamPtrPtr);
-    reservedmarshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits), streamPtrPtr);
-    unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(stream, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
-    if (pFeatures)
-    {
-        transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(sResourceTracker, (VkDeviceGeneratedCommandsFeaturesNVX*)(pFeatures));
-    }
-    unmarshal_VkDeviceGeneratedCommandsLimitsNVX(stream, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
-    if (pLimits)
-    {
-        transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(sResourceTracker, (VkDeviceGeneratedCommandsLimitsNVX*)(pLimits));
-    }
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void VkEncoder::vkCmdSetViewportWScalingNV(
     VkCommandBuffer commandBuffer,
@@ -21731,7 +24666,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1165;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -21749,9 +24684,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetViewportWScalingNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1166;
-        *&cgen_var_1166 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1166, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstViewport, sizeof(uint32_t));
@@ -21790,9 +24725,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1167;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1168;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkReleaseDisplayEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -21803,13 +24738,13 @@
     memcpy(streamPtr, &opcode_vkReleaseDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkReleaseDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1169;
-    *&cgen_var_1169 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1169, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1170;
-    *&cgen_var_1170 = get_host_u64_VkDisplayKHR((*&local_display));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1170, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayKHR((*&local_display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkReleaseDisplayEXT_VkResult_return, sizeof(VkResult));
@@ -21843,10 +24778,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1171;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(Display);
-        uint64_t cgen_var_1172;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkAcquireXlibDisplayEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -21857,15 +24792,15 @@
     memcpy(streamPtr, &opcode_vkAcquireXlibDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkAcquireXlibDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1173;
-    *&cgen_var_1173 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1173, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (Display*)dpy, sizeof(Display));
     *streamPtrPtr += sizeof(Display);
-    uint64_t cgen_var_1174;
-    *&cgen_var_1174 = get_host_u64_VkDisplayKHR((*&local_display));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1174, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayKHR((*&local_display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     stream->read((Display*)dpy, sizeof(Display));
     VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
@@ -21899,11 +24834,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1175;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(Display);
         *countPtr += sizeof(RROutput);
-        uint64_t cgen_var_1176;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkGetRandROutputDisplayEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -21914,24 +24849,24 @@
     memcpy(streamPtr, &opcode_vkGetRandROutputDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetRandROutputDisplayEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1177;
-    *&cgen_var_1177 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1177, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (Display*)dpy, sizeof(Display));
     *streamPtrPtr += sizeof(Display);
     memcpy(*streamPtrPtr, (RROutput*)&local_rrOutput, sizeof(RROutput));
     *streamPtrPtr += sizeof(RROutput);
     /* is handle, possibly out */;
-    uint64_t cgen_var_1178;
-    *&cgen_var_1178 = (uint64_t)((*pDisplay));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1178, 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = (uint64_t)((*pDisplay));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->read((Display*)dpy, sizeof(Display));
-    uint64_t cgen_var_1179;
-    stream->read((uint64_t*)&cgen_var_1179, 8);
-    stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_1179, (VkDisplayKHR*)pDisplay, 1);
+    uint64_t cgen_var_2;
+    stream->read((uint64_t*)&cgen_var_2, 8);
+    stream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_2, (VkDisplayKHR*)pDisplay, 1);
     VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
     stream->read(&vkGetRandROutputDisplayEXT_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -21964,9 +24899,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1180;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1181;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkSurfaceCapabilities2EXT(sFeatureBits, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities), countPtr);
     }
@@ -21978,13 +24913,13 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfaceCapabilities2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1182;
-    *&cgen_var_1182 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1182, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1183;
-    *&cgen_var_1183 = get_host_u64_VkSurfaceKHR((*&local_surface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1183, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSurfaceKHR((*&local_surface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities), streamPtrPtr);
     unmarshal_VkSurfaceCapabilities2EXT(stream, (VkSurfaceCapabilities2EXT*)(pSurfaceCapabilities));
@@ -22035,9 +24970,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1184;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1185;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkDisplayPowerInfoEXT(sFeatureBits, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo), countPtr);
     }
@@ -22049,13 +24984,13 @@
     memcpy(streamPtr, &opcode_vkDisplayPowerControlEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDisplayPowerControlEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1186;
-    *&cgen_var_1186 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1186, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1187;
-    *&cgen_var_1187 = get_host_u64_VkDisplayKHR((*&local_display));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1187, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayKHR((*&local_display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDisplayPowerInfoEXT(stream, (VkDisplayPowerInfoEXT*)(local_pDisplayPowerInfo), streamPtrPtr);
     VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
@@ -22110,7 +25045,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1188;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDeviceEventInfoEXT(sFeatureBits, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo), countPtr);
         // WARNING PTR CHECK
@@ -22119,7 +25054,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1189;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkRegisterDeviceEventEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -22130,14 +25065,14 @@
     memcpy(streamPtr, &opcode_vkRegisterDeviceEventEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkRegisterDeviceEventEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1190;
-    *&cgen_var_1190 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1190, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDeviceEventInfoEXT(stream, (VkDeviceEventInfoEXT*)(local_pDeviceEventInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1191 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1191, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -22145,14 +25080,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1192;
-    *&cgen_var_1192 = (uint64_t)((*pFence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1192, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pFence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_1193;
-    stream->read((uint64_t*)&cgen_var_1193, 8);
-    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1193, (VkFence*)pFence, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_3, (VkFence*)pFence, 1);
     VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterDeviceEventEXT_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -22208,9 +25143,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1194;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1195;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkDisplayEventInfoEXT(sFeatureBits, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo), countPtr);
         // WARNING PTR CHECK
@@ -22219,7 +25154,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1196;
+        uint64_t cgen_var_2;
         *countPtr += 8;
     }
     uint32_t packetSize_vkRegisterDisplayEventEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -22230,18 +25165,18 @@
     memcpy(streamPtr, &opcode_vkRegisterDisplayEventEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkRegisterDisplayEventEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1197;
-    *&cgen_var_1197 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1197, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1198;
-    *&cgen_var_1198 = get_host_u64_VkDisplayKHR((*&local_display));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1198, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDisplayKHR((*&local_display));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDisplayEventInfoEXT(stream, (VkDisplayEventInfoEXT*)(local_pDisplayEventInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1199 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1199, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -22249,14 +25184,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1200;
-    *&cgen_var_1200 = (uint64_t)((*pFence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1200, 8);
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = (uint64_t)((*pFence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_3, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_1201;
-    stream->read((uint64_t*)&cgen_var_1201, 8);
-    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_1201, (VkFence*)pFence, 1);
+    uint64_t cgen_var_4;
+    stream->read((uint64_t*)&cgen_var_4, 8);
+    stream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_4, (VkFence*)pFence, 1);
     VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
     stream->read(&vkRegisterDisplayEventEXT_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -22290,9 +25225,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1202;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1203;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkSurfaceCounterFlagBitsEXT);
         *countPtr += sizeof(uint64_t);
@@ -22305,13 +25240,13 @@
     memcpy(streamPtr, &opcode_vkGetSwapchainCounterEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetSwapchainCounterEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1204;
-    *&cgen_var_1204 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1204, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1205;
-    *&cgen_var_1205 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1205, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkSurfaceCounterFlagBitsEXT*)&local_counter, sizeof(VkSurfaceCounterFlagBitsEXT));
     *streamPtrPtr += sizeof(VkSurfaceCounterFlagBitsEXT);
@@ -22350,9 +25285,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1206;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1207;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         count_VkRefreshCycleDurationGOOGLE(sFeatureBits, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties), countPtr);
     }
@@ -22364,13 +25299,13 @@
     memcpy(streamPtr, &opcode_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetRefreshCycleDurationGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1208;
-    *&cgen_var_1208 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1208, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1209;
-    *&cgen_var_1209 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1209, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties), streamPtrPtr);
     unmarshal_VkRefreshCycleDurationGOOGLE(stream, (VkRefreshCycleDurationGOOGLE*)(pDisplayTimingProperties));
@@ -22409,9 +25344,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1210;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1211;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -22423,9 +25358,12 @@
         *countPtr += 8;
         if (pPresentationTimings)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
+            if ((pPresentationTimingCount) != nullptr)
             {
-                count_VkPastPresentationTimingGOOGLE(sFeatureBits, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
+                {
+                    count_VkPastPresentationTimingGOOGLE(sFeatureBits, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i), countPtr);
+                }
             }
         }
     }
@@ -22437,17 +25375,17 @@
     memcpy(streamPtr, &opcode_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPastPresentationTimingGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1212;
-    *&cgen_var_1212 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1212, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1213;
-    *&cgen_var_1213 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1213, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1214 = (uint64_t)(uintptr_t)pPresentationTimingCount;
-    memcpy((*streamPtrPtr), &cgen_var_1214, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPresentationTimingCount;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPresentationTimingCount)
@@ -22456,8 +25394,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1215 = (uint64_t)(uintptr_t)pPresentationTimings;
-    memcpy((*streamPtrPtr), &cgen_var_1215, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pPresentationTimings;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pPresentationTimings)
@@ -22487,16 +25425,22 @@
         {
             fprintf(stderr, "fatal: pPresentationTimings inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
+        if ((pPresentationTimingCount) != nullptr)
         {
-            unmarshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
+            {
+                unmarshal_VkPastPresentationTimingGOOGLE(stream, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
+            }
         }
     }
-    if (pPresentationTimings)
+    if ((pPresentationTimingCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
+        if (pPresentationTimings)
         {
-            transform_fromhost_VkPastPresentationTimingGOOGLE(sResourceTracker, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pPresentationTimingCount)); ++i)
+            {
+                transform_fromhost_VkPastPresentationTimingGOOGLE(sResourceTracker, (VkPastPresentationTimingGOOGLE*)(pPresentationTimings + i));
+            }
         }
     }
     VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
@@ -22561,7 +25505,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1218;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -22579,9 +25523,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetDiscardRectangleEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1219;
-        *&cgen_var_1219 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1219, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_firstDiscardRectangle, sizeof(uint32_t));
@@ -22604,6 +25548,8 @@
 #endif
 #ifdef VK_EXT_conservative_rasterization
 #endif
+#ifdef VK_EXT_depth_clip_enable
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -22646,7 +25592,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1220;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         if (((swapchainCount)))
@@ -22666,19 +25612,19 @@
     memcpy(streamPtr, &opcode_vkSetHdrMetadataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkSetHdrMetadataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1222;
-    *&cgen_var_1222 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1222, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_swapchainCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     if (((swapchainCount)))
     {
-        uint8_t* cgen_var_1223_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((swapchainCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkSwapchainKHR(local_pSwapchains[k]);
-            memcpy(cgen_var_1223_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((swapchainCount));
     }
@@ -22738,7 +25684,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1224;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkIOSSurfaceCreateInfoMVK(sFeatureBits, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -22747,7 +25693,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1225;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateIOSSurfaceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -22758,14 +25704,14 @@
     memcpy(streamPtr, &opcode_vkCreateIOSSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateIOSSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1226;
-    *&cgen_var_1226 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1226, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkIOSSurfaceCreateInfoMVK(stream, (VkIOSSurfaceCreateInfoMVK*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1227 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1227, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -22773,14 +25719,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1228;
-    *&cgen_var_1228 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1228, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_1229;
-    stream->read((uint64_t*)&cgen_var_1229, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1229, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
     stream->read(&vkCreateIOSSurfaceMVK_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -22835,7 +25781,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1230;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkMacOSSurfaceCreateInfoMVK(sFeatureBits, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -22844,7 +25790,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1231;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateMacOSSurfaceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -22855,14 +25801,14 @@
     memcpy(streamPtr, &opcode_vkCreateMacOSSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateMacOSSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1232;
-    *&cgen_var_1232 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1232, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkMacOSSurfaceCreateInfoMVK(stream, (VkMacOSSurfaceCreateInfoMVK*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1233 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1233, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -22870,14 +25816,14 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1234;
-    *&cgen_var_1234 = (uint64_t)((*pSurface));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1234, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
-    uint64_t cgen_var_1235;
-    stream->read((uint64_t*)&cgen_var_1235, 8);
-    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_1235, (VkSurfaceKHR*)pSurface, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
     VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
     stream->read(&vkCreateMacOSSurfaceMVK_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
@@ -22891,6 +25837,272 @@
 }
 
 #endif
+#ifdef VK_MVK_moltenvk
+void VkEncoder::vkGetMTLDeviceMVK(
+    VkPhysicalDevice physicalDevice,
+    void** pMTLDevice,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    local_physicalDevice = physicalDevice;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(void*);
+    }
+    uint32_t packetSize_vkGetMTLDeviceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMTLDeviceMVK);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetMTLDeviceMVK = OP_vkGetMTLDeviceMVK;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetMTLDeviceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetMTLDeviceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (void**)pMTLDevice, sizeof(void*));
+    *streamPtrPtr += sizeof(void*);
+    stream->read((void**)pMTLDevice, sizeof(void*));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkSetMTLTextureMVK(
+    VkImage image,
+    void* mtlTexture,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkImage local_image;
+    local_image = image;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint8_t);
+    }
+    uint32_t packetSize_vkSetMTLTextureMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSetMTLTextureMVK);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSetMTLTextureMVK = OP_vkSetMTLTextureMVK;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (void*)mtlTexture, sizeof(uint8_t));
+    *streamPtrPtr += sizeof(uint8_t);
+    stream->read((void*)mtlTexture, sizeof(uint8_t));
+    VkResult vkSetMTLTextureMVK_VkResult_return = (VkResult)0;
+    stream->read(&vkSetMTLTextureMVK_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkSetMTLTextureMVK_VkResult_return;
+}
+
+void VkEncoder::vkGetMTLTextureMVK(
+    VkImage image,
+    void** pMTLTexture,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkImage local_image;
+    local_image = image;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(void*);
+    }
+    uint32_t packetSize_vkGetMTLTextureMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMTLTextureMVK);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetMTLTextureMVK = OP_vkGetMTLTextureMVK;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (void**)pMTLTexture, sizeof(void*));
+    *streamPtrPtr += sizeof(void*);
+    stream->read((void**)pMTLTexture, sizeof(void*));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkGetMTLBufferMVK(
+    VkBuffer buffer,
+    void** pMTLBuffer,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkBuffer local_buffer;
+    local_buffer = buffer;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(void*);
+    }
+    uint32_t packetSize_vkGetMTLBufferMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMTLBufferMVK);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetMTLBufferMVK = OP_vkGetMTLBufferMVK;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetMTLBufferMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetMTLBufferMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (void**)pMTLBuffer, sizeof(void*));
+    *streamPtrPtr += sizeof(void*);
+    stream->read((void**)pMTLBuffer, sizeof(void*));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkUseIOSurfaceMVK(
+    VkImage image,
+    void* ioSurface,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkImage local_image;
+    local_image = image;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint8_t);
+    }
+    uint32_t packetSize_vkUseIOSurfaceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkUseIOSurfaceMVK);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkUseIOSurfaceMVK = OP_vkUseIOSurfaceMVK;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkUseIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkUseIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (void*)ioSurface, sizeof(uint8_t));
+    *streamPtrPtr += sizeof(uint8_t);
+    stream->read((void*)ioSurface, sizeof(uint8_t));
+    VkResult vkUseIOSurfaceMVK_VkResult_return = (VkResult)0;
+    stream->read(&vkUseIOSurfaceMVK_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkUseIOSurfaceMVK_VkResult_return;
+}
+
+void VkEncoder::vkGetIOSurfaceMVK(
+    VkImage image,
+    void** pIOSurface,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkImage local_image;
+    local_image = image;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(void*);
+    }
+    uint32_t packetSize_vkGetIOSurfaceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetIOSurfaceMVK);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetIOSurfaceMVK = OP_vkGetIOSurfaceMVK;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (void**)pIOSurface, sizeof(void*));
+    *streamPtrPtr += sizeof(void*);
+    stream->read((void**)pIOSurface, sizeof(void*));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
@@ -22922,7 +26134,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1236;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugUtilsObjectNameInfoEXT(sFeatureBits, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo), countPtr);
     }
@@ -22934,9 +26146,9 @@
     memcpy(streamPtr, &opcode_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkSetDebugUtilsObjectNameEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1237;
-    *&cgen_var_1237 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1237, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugUtilsObjectNameInfoEXT(stream, (VkDebugUtilsObjectNameInfoEXT*)(local_pNameInfo), streamPtrPtr);
     VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
@@ -22977,7 +26189,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1238;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugUtilsObjectTagInfoEXT(sFeatureBits, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo), countPtr);
     }
@@ -22989,9 +26201,9 @@
     memcpy(streamPtr, &opcode_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkSetDebugUtilsObjectTagEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1239;
-    *&cgen_var_1239 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1239, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugUtilsObjectTagInfoEXT(stream, (VkDebugUtilsObjectTagInfoEXT*)(local_pTagInfo), streamPtrPtr);
     VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
@@ -23032,7 +26244,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1240;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugUtilsLabelEXT(sFeatureBits, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), countPtr);
     }
@@ -23044,9 +26256,9 @@
     memcpy(streamPtr, &opcode_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueBeginDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1241;
-    *&cgen_var_1241 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1241, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), streamPtrPtr);
     stream->flush();
@@ -23073,7 +26285,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1242;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkQueueEndDebugUtilsLabelEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -23084,9 +26296,9 @@
     memcpy(streamPtr, &opcode_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueEndDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1243;
-    *&cgen_var_1243 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1243, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     stream->flush();
     ++encodeCount;;
@@ -23124,7 +26336,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1244;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugUtilsLabelEXT(sFeatureBits, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), countPtr);
     }
@@ -23136,9 +26348,9 @@
     memcpy(streamPtr, &opcode_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueInsertDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1245;
-    *&cgen_var_1245 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1245, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), streamPtrPtr);
     stream->flush();
@@ -23177,7 +26389,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1246;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugUtilsLabelEXT(sFeatureBits, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), countPtr);
     }
@@ -23190,9 +26402,9 @@
     memcpy(streamPtr, &packetSize_vkCmdBeginDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1247;
-        *&cgen_var_1247 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1247, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), streamPtrPtr);
@@ -23219,7 +26431,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1248;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkCmdEndDebugUtilsLabelEXT = 4 + 4 + count;
@@ -23231,9 +26443,9 @@
     memcpy(streamPtr, &packetSize_vkCmdEndDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1249;
-        *&cgen_var_1249 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1249, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     ++encodeCount;;
@@ -23271,7 +26483,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1250;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugUtilsLabelEXT(sFeatureBits, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), countPtr);
     }
@@ -23284,9 +26496,9 @@
     memcpy(streamPtr, &packetSize_vkCmdInsertDebugUtilsLabelEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1251;
-        *&cgen_var_1251 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1251, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkDebugUtilsLabelEXT(stream, (VkDebugUtilsLabelEXT*)(local_pLabelInfo), streamPtrPtr);
@@ -23339,7 +26551,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1252;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkDebugUtilsMessengerCreateInfoEXT(sFeatureBits, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -23348,7 +26560,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1253;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateDebugUtilsMessengerEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -23359,14 +26571,14 @@
     memcpy(streamPtr, &opcode_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateDebugUtilsMessengerEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1254;
-    *&cgen_var_1254 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1254, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkDebugUtilsMessengerCreateInfoEXT(stream, (VkDebugUtilsMessengerCreateInfoEXT*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1255 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1255, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -23374,15 +26586,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1256;
-    *&cgen_var_1256 = (uint64_t)((*pMessenger));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1256, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pMessenger));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1257;
-    stream->read((uint64_t*)&cgen_var_1257, 8);
-    stream->handleMapping()->mapHandles_u64_VkDebugUtilsMessengerEXT(&cgen_var_1257, (VkDebugUtilsMessengerEXT*)pMessenger, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkDebugUtilsMessengerEXT(&cgen_var_3, (VkDebugUtilsMessengerEXT*)pMessenger, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateDebugUtilsMessengerEXT_VkResult_return, sizeof(VkResult));
@@ -23426,9 +26638,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1258;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1259;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -23445,17 +26657,17 @@
     memcpy(streamPtr, &opcode_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyDebugUtilsMessengerEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1260;
-    *&cgen_var_1260 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1260, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1261;
-    *&cgen_var_1261 = get_host_u64_VkDebugUtilsMessengerEXT((*&local_messenger));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1261, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDebugUtilsMessengerEXT((*&local_messenger));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1262 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1262, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -23505,7 +26717,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1263;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT);
         *countPtr += sizeof(VkDebugUtilsMessageTypeFlagsEXT);
@@ -23519,9 +26731,9 @@
     memcpy(streamPtr, &opcode_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkSubmitDebugUtilsMessageEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1264;
-    *&cgen_var_1264 = get_host_u64_VkInstance((*&local_instance));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1264, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDebugUtilsMessageSeverityFlagBitsEXT*)&local_messageSeverity, sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT));
     *streamPtrPtr += sizeof(VkDebugUtilsMessageSeverityFlagBitsEXT);
@@ -23559,7 +26771,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1265;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(AHardwareBuffer);
         count_VkAndroidHardwareBufferPropertiesANDROID(sFeatureBits, (VkAndroidHardwareBufferPropertiesANDROID*)(pProperties), countPtr);
@@ -23572,9 +26784,9 @@
     memcpy(streamPtr, &opcode_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetAndroidHardwareBufferPropertiesANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1266;
-    *&cgen_var_1266 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1266, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (AHardwareBuffer*)local_buffer, sizeof(AHardwareBuffer));
     *streamPtrPtr += sizeof(AHardwareBuffer);
@@ -23623,7 +26835,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1267;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkMemoryGetAndroidHardwareBufferInfoANDROID(sFeatureBits, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo), countPtr);
         *countPtr += sizeof(AHardwareBuffer*);
@@ -23636,9 +26848,9 @@
     memcpy(streamPtr, &opcode_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryAndroidHardwareBufferANDROID, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1268;
-    *&cgen_var_1268 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1268, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(stream, (VkMemoryGetAndroidHardwareBufferInfoANDROID*)(local_pInfo), streamPtrPtr);
     memcpy(*streamPtrPtr, (AHardwareBuffer**)pBuffer, sizeof(AHardwareBuffer*));
@@ -23665,6 +26877,8 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -23694,7 +26908,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1269;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkSampleLocationsInfoEXT(sFeatureBits, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo), countPtr);
     }
@@ -23707,9 +26921,9 @@
     memcpy(streamPtr, &packetSize_vkCmdSetSampleLocationsEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1270;
-        *&cgen_var_1270 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1270, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkSampleLocationsInfoEXT(stream, (VkSampleLocationsInfoEXT*)(local_pSampleLocationsInfo), streamPtrPtr);
@@ -23740,7 +26954,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1271;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkSampleCountFlagBits);
         count_VkMultisamplePropertiesEXT(sFeatureBits, (VkMultisamplePropertiesEXT*)(pMultisampleProperties), countPtr);
@@ -23753,9 +26967,9 @@
     memcpy(streamPtr, &opcode_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceMultisamplePropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1272;
-    *&cgen_var_1272 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1272, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkSampleCountFlagBits*)&local_samples, sizeof(VkSampleCountFlagBits));
     *streamPtrPtr += sizeof(VkSampleCountFlagBits);
@@ -23783,8 +26997,70 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+VkResult VkEncoder::vkGetImageDrmFormatModifierPropertiesEXT(
+    VkDevice device,
+    VkImage image,
+    VkImageDrmFormatModifierPropertiesEXT* pProperties,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkImage local_image;
+    local_device = device;
+    local_image = image;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        count_VkImageDrmFormatModifierPropertiesEXT(sFeatureBits, (VkImageDrmFormatModifierPropertiesEXT*)(pProperties), countPtr);
+    }
+    uint32_t packetSize_vkGetImageDrmFormatModifierPropertiesEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetImageDrmFormatModifierPropertiesEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetImageDrmFormatModifierPropertiesEXT = OP_vkGetImageDrmFormatModifierPropertiesEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetImageDrmFormatModifierPropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetImageDrmFormatModifierPropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkImageDrmFormatModifierPropertiesEXT(stream, (VkImageDrmFormatModifierPropertiesEXT*)(pProperties), streamPtrPtr);
+    unmarshal_VkImageDrmFormatModifierPropertiesEXT(stream, (VkImageDrmFormatModifierPropertiesEXT*)(pProperties));
+    if (pProperties)
+    {
+        transform_fromhost_VkImageDrmFormatModifierPropertiesEXT(sResourceTracker, (VkImageDrmFormatModifierPropertiesEXT*)(pProperties));
+    }
+    VkResult vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return;
+}
+
+#endif
 #ifdef VK_EXT_validation_cache
 VkResult VkEncoder::vkCreateValidationCacheEXT(
     VkDevice device,
@@ -23826,7 +27102,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1273;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkValidationCacheCreateInfoEXT(sFeatureBits, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -23835,7 +27111,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1274;
+        uint64_t cgen_var_1;
         *countPtr += 8;
     }
     uint32_t packetSize_vkCreateValidationCacheEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -23846,14 +27122,14 @@
     memcpy(streamPtr, &opcode_vkCreateValidationCacheEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateValidationCacheEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1275;
-    *&cgen_var_1275 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1275, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkValidationCacheCreateInfoEXT(stream, (VkValidationCacheCreateInfoEXT*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1276 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1276, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -23861,15 +27137,15 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1277;
-    *&cgen_var_1277 = (uint64_t)((*pValidationCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1277, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pValidationCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1278;
-    stream->read((uint64_t*)&cgen_var_1278, 8);
-    stream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_1278, (VkValidationCacheEXT*)pValidationCache, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_3, (VkValidationCacheEXT*)pValidationCache, 1);
     stream->unsetHandleMapping();
     VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
     stream->read(&vkCreateValidationCacheEXT_VkResult_return, sizeof(VkResult));
@@ -23913,9 +27189,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1279;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1280;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -23932,17 +27208,17 @@
     memcpy(streamPtr, &opcode_vkDestroyValidationCacheEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkDestroyValidationCacheEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1281;
-    *&cgen_var_1281 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1281, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1282;
-    *&cgen_var_1282 = get_host_u64_VkValidationCacheEXT((*&local_validationCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1282, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkValidationCacheEXT((*&local_validationCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1283 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1283, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -23984,9 +27260,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1284;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1285;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         if (((srcCacheCount)))
@@ -24002,23 +27278,23 @@
     memcpy(streamPtr, &opcode_vkMergeValidationCachesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkMergeValidationCachesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1287;
-    *&cgen_var_1287 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1287, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1288;
-    *&cgen_var_1288 = get_host_u64_VkValidationCacheEXT((*&local_dstCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1288, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkValidationCacheEXT((*&local_dstCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_srcCacheCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     if (((srcCacheCount)))
     {
-        uint8_t* cgen_var_1289_ptr = (uint8_t*)(*streamPtrPtr);
+        uint8_t* cgen_var_2_ptr = (uint8_t*)(*streamPtrPtr);
         for (uint32_t k = 0; k < ((srcCacheCount)); ++k)
         {
             uint64_t tmpval = get_host_u64_VkValidationCacheEXT(local_pSrcCaches[k]);
-            memcpy(cgen_var_1289_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            memcpy(cgen_var_2_ptr + k * 8, &tmpval, sizeof(uint64_t));
         }
         *streamPtrPtr += 8 * ((srcCacheCount));
     }
@@ -24053,9 +27329,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1290;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1291;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -24067,7 +27343,10 @@
         *countPtr += 8;
         if (pData)
         {
-            *countPtr += (*(pDataSize)) * sizeof(uint8_t);
+            if ((pDataSize) != nullptr)
+            {
+                *countPtr += (*(pDataSize)) * sizeof(uint8_t);
+            }
         }
     }
     uint32_t packetSize_vkGetValidationCacheDataEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -24078,29 +27357,29 @@
     memcpy(streamPtr, &opcode_vkGetValidationCacheDataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetValidationCacheDataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1292;
-    *&cgen_var_1292 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1292, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1293;
-    *&cgen_var_1293 = get_host_u64_VkValidationCacheEXT((*&local_validationCache));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1293, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkValidationCacheEXT((*&local_validationCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1294 = (uint64_t)(uintptr_t)pDataSize;
-    memcpy((*streamPtrPtr), &cgen_var_1294, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pDataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pDataSize)
     {
-        uint64_t cgen_var_1295 = (uint64_t)(*pDataSize);
-        memcpy((*streamPtrPtr), &cgen_var_1295, 8);
+        uint64_t cgen_var_2_0 = (uint64_t)(*pDataSize);
+        memcpy((*streamPtrPtr), &cgen_var_2_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
         *streamPtrPtr += 8;
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1296 = (uint64_t)(uintptr_t)pData;
-    memcpy((*streamPtrPtr), &cgen_var_1296, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pData;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pData)
@@ -24147,6 +27426,1330 @@
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+void VkEncoder::vkCmdBindShadingRateImageNV(
+    VkCommandBuffer commandBuffer,
+    VkImageView imageView,
+    VkImageLayout imageLayout,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkImageView local_imageView;
+    VkImageLayout local_imageLayout;
+    local_commandBuffer = commandBuffer;
+    local_imageView = imageView;
+    local_imageLayout = imageLayout;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkImageLayout);
+    }
+    uint32_t packetSize_vkCmdBindShadingRateImageNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBindShadingRateImageNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBindShadingRateImageNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBindShadingRateImageNV = OP_vkCmdBindShadingRateImageNV;
+    memcpy(streamPtr, &opcode_vkCmdBindShadingRateImageNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBindShadingRateImageNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImageView((*&local_imageView));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkImageLayout*)&local_imageLayout, sizeof(VkImageLayout));
+    *streamPtrPtr += sizeof(VkImageLayout);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetViewportShadingRatePaletteNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstViewport,
+    uint32_t viewportCount,
+    const VkShadingRatePaletteNV* pShadingRatePalettes,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_firstViewport;
+    uint32_t local_viewportCount;
+    VkShadingRatePaletteNV* local_pShadingRatePalettes;
+    local_commandBuffer = commandBuffer;
+    local_firstViewport = firstViewport;
+    local_viewportCount = viewportCount;
+    local_pShadingRatePalettes = nullptr;
+    if (pShadingRatePalettes)
+    {
+        local_pShadingRatePalettes = (VkShadingRatePaletteNV*)pool->alloc(((viewportCount)) * sizeof(const VkShadingRatePaletteNV));
+        for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+        {
+            deepcopy_VkShadingRatePaletteNV(pool, pShadingRatePalettes + i, (VkShadingRatePaletteNV*)(local_pShadingRatePalettes + i));
+        }
+    }
+    if (local_pShadingRatePalettes)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+        {
+            transform_tohost_VkShadingRatePaletteNV(sResourceTracker, (VkShadingRatePaletteNV*)(local_pShadingRatePalettes + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+        {
+            count_VkShadingRatePaletteNV(sFeatureBits, (VkShadingRatePaletteNV*)(local_pShadingRatePalettes + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkCmdSetViewportShadingRatePaletteNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetViewportShadingRatePaletteNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetViewportShadingRatePaletteNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetViewportShadingRatePaletteNV = OP_vkCmdSetViewportShadingRatePaletteNV;
+    memcpy(streamPtr, &opcode_vkCmdSetViewportShadingRatePaletteNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetViewportShadingRatePaletteNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstViewport, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_viewportCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+    {
+        reservedmarshal_VkShadingRatePaletteNV(stream, (VkShadingRatePaletteNV*)(local_pShadingRatePalettes + i), streamPtrPtr);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetCoarseSampleOrderNV(
+    VkCommandBuffer commandBuffer,
+    VkCoarseSampleOrderTypeNV sampleOrderType,
+    uint32_t customSampleOrderCount,
+    const VkCoarseSampleOrderCustomNV* pCustomSampleOrders,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCoarseSampleOrderTypeNV local_sampleOrderType;
+    uint32_t local_customSampleOrderCount;
+    VkCoarseSampleOrderCustomNV* local_pCustomSampleOrders;
+    local_commandBuffer = commandBuffer;
+    local_sampleOrderType = sampleOrderType;
+    local_customSampleOrderCount = customSampleOrderCount;
+    local_pCustomSampleOrders = nullptr;
+    if (pCustomSampleOrders)
+    {
+        local_pCustomSampleOrders = (VkCoarseSampleOrderCustomNV*)pool->alloc(((customSampleOrderCount)) * sizeof(const VkCoarseSampleOrderCustomNV));
+        for (uint32_t i = 0; i < (uint32_t)((customSampleOrderCount)); ++i)
+        {
+            deepcopy_VkCoarseSampleOrderCustomNV(pool, pCustomSampleOrders + i, (VkCoarseSampleOrderCustomNV*)(local_pCustomSampleOrders + i));
+        }
+    }
+    if (local_pCustomSampleOrders)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((customSampleOrderCount)); ++i)
+        {
+            transform_tohost_VkCoarseSampleOrderCustomNV(sResourceTracker, (VkCoarseSampleOrderCustomNV*)(local_pCustomSampleOrders + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkCoarseSampleOrderTypeNV);
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((customSampleOrderCount)); ++i)
+        {
+            count_VkCoarseSampleOrderCustomNV(sFeatureBits, (VkCoarseSampleOrderCustomNV*)(local_pCustomSampleOrders + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkCmdSetCoarseSampleOrderNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetCoarseSampleOrderNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetCoarseSampleOrderNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetCoarseSampleOrderNV = OP_vkCmdSetCoarseSampleOrderNV;
+    memcpy(streamPtr, &opcode_vkCmdSetCoarseSampleOrderNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetCoarseSampleOrderNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkCoarseSampleOrderTypeNV*)&local_sampleOrderType, sizeof(VkCoarseSampleOrderTypeNV));
+    *streamPtrPtr += sizeof(VkCoarseSampleOrderTypeNV);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_customSampleOrderCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((customSampleOrderCount)); ++i)
+    {
+        reservedmarshal_VkCoarseSampleOrderCustomNV(stream, (VkCoarseSampleOrderCustomNV*)(local_pCustomSampleOrders + i), streamPtrPtr);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_NV_ray_tracing
+VkResult VkEncoder::vkCreateAccelerationStructureNV(
+    VkDevice device,
+    const VkAccelerationStructureCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkAccelerationStructureNV* pAccelerationStructure,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureCreateInfoNV* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkAccelerationStructureCreateInfoNV*)pool->alloc(sizeof(const VkAccelerationStructureCreateInfoNV));
+        deepcopy_VkAccelerationStructureCreateInfoNV(pool, pCreateInfo, (VkAccelerationStructureCreateInfoNV*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkAccelerationStructureCreateInfoNV(sResourceTracker, (VkAccelerationStructureCreateInfoNV*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkAccelerationStructureCreateInfoNV(sFeatureBits, (VkAccelerationStructureCreateInfoNV*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateAccelerationStructureNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateAccelerationStructureNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateAccelerationStructureNV = OP_vkCreateAccelerationStructureNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkAccelerationStructureCreateInfoNV(stream, (VkAccelerationStructureCreateInfoNV*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pAccelerationStructure));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    stream->setHandleMapping(sResourceTracker->createMapping());
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(&cgen_var_3, (VkAccelerationStructureNV*)pAccelerationStructure, 1);
+    stream->unsetHandleMapping();
+    VkResult vkCreateAccelerationStructureNV_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateAccelerationStructureNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateAccelerationStructureNV_VkResult_return;
+}
+
+void VkEncoder::vkDestroyAccelerationStructureNV(
+    VkDevice device,
+    VkAccelerationStructureNV accelerationStructure,
+    const VkAllocationCallbacks* pAllocator,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureNV local_accelerationStructure;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_accelerationStructure = accelerationStructure;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyAccelerationStructureNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyAccelerationStructureNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyAccelerationStructureNV = OP_vkDestroyAccelerationStructureNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkAccelerationStructureNV((*&local_accelerationStructure));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    sResourceTracker->destroyMapping()->mapHandles_VkAccelerationStructureNV((VkAccelerationStructureNV*)&accelerationStructure);
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkGetAccelerationStructureMemoryRequirementsNV(
+    VkDevice device,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2KHR* pMemoryRequirements,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureMemoryRequirementsInfoNV* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkAccelerationStructureMemoryRequirementsInfoNV*)pool->alloc(sizeof(const VkAccelerationStructureMemoryRequirementsInfoNV));
+        deepcopy_VkAccelerationStructureMemoryRequirementsInfoNV(pool, pInfo, (VkAccelerationStructureMemoryRequirementsInfoNV*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkAccelerationStructureMemoryRequirementsInfoNV(sResourceTracker, (VkAccelerationStructureMemoryRequirementsInfoNV*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkAccelerationStructureMemoryRequirementsInfoNV(sFeatureBits, (VkAccelerationStructureMemoryRequirementsInfoNV*)(local_pInfo), countPtr);
+        count_VkMemoryRequirements2KHR(sFeatureBits, (VkMemoryRequirements2KHR*)(pMemoryRequirements), countPtr);
+    }
+    uint32_t packetSize_vkGetAccelerationStructureMemoryRequirementsNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetAccelerationStructureMemoryRequirementsNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetAccelerationStructureMemoryRequirementsNV = OP_vkGetAccelerationStructureMemoryRequirementsNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetAccelerationStructureMemoryRequirementsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetAccelerationStructureMemoryRequirementsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkAccelerationStructureMemoryRequirementsInfoNV(stream, (VkAccelerationStructureMemoryRequirementsInfoNV*)(local_pInfo), streamPtrPtr);
+    reservedmarshal_VkMemoryRequirements2KHR(stream, (VkMemoryRequirements2KHR*)(pMemoryRequirements), streamPtrPtr);
+    unmarshal_VkMemoryRequirements2KHR(stream, (VkMemoryRequirements2KHR*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements2KHR(sResourceTracker, (VkMemoryRequirements2KHR*)(pMemoryRequirements));
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkBindAccelerationStructureMemoryNV(
+    VkDevice device,
+    uint32_t bindInfoCount,
+    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    uint32_t local_bindInfoCount;
+    VkBindAccelerationStructureMemoryInfoNV* local_pBindInfos;
+    local_device = device;
+    local_bindInfoCount = bindInfoCount;
+    local_pBindInfos = nullptr;
+    if (pBindInfos)
+    {
+        local_pBindInfos = (VkBindAccelerationStructureMemoryInfoNV*)pool->alloc(((bindInfoCount)) * sizeof(const VkBindAccelerationStructureMemoryInfoNV));
+        for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
+        {
+            deepcopy_VkBindAccelerationStructureMemoryInfoNV(pool, pBindInfos + i, (VkBindAccelerationStructureMemoryInfoNV*)(local_pBindInfos + i));
+        }
+    }
+    if (local_pBindInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
+        {
+            transform_tohost_VkBindAccelerationStructureMemoryInfoNV(sResourceTracker, (VkBindAccelerationStructureMemoryInfoNV*)(local_pBindInfos + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
+        {
+            count_VkBindAccelerationStructureMemoryInfoNV(sFeatureBits, (VkBindAccelerationStructureMemoryInfoNV*)(local_pBindInfos + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkBindAccelerationStructureMemoryNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkBindAccelerationStructureMemoryNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkBindAccelerationStructureMemoryNV = OP_vkBindAccelerationStructureMemoryNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkBindAccelerationStructureMemoryNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkBindAccelerationStructureMemoryNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
+    {
+        reservedmarshal_VkBindAccelerationStructureMemoryInfoNV(stream, (VkBindAccelerationStructureMemoryInfoNV*)(local_pBindInfos + i), streamPtrPtr);
+    }
+    VkResult vkBindAccelerationStructureMemoryNV_VkResult_return = (VkResult)0;
+    stream->read(&vkBindAccelerationStructureMemoryNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkBindAccelerationStructureMemoryNV_VkResult_return;
+}
+
+void VkEncoder::vkCmdBuildAccelerationStructureNV(
+    VkCommandBuffer commandBuffer,
+    const VkAccelerationStructureInfoNV* pInfo,
+    VkBuffer instanceData,
+    VkDeviceSize instanceOffset,
+    VkBool32 update,
+    VkAccelerationStructureNV dst,
+    VkAccelerationStructureNV src,
+    VkBuffer scratch,
+    VkDeviceSize scratchOffset,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkAccelerationStructureInfoNV* local_pInfo;
+    VkBuffer local_instanceData;
+    VkDeviceSize local_instanceOffset;
+    VkBool32 local_update;
+    VkAccelerationStructureNV local_dst;
+    VkAccelerationStructureNV local_src;
+    VkBuffer local_scratch;
+    VkDeviceSize local_scratchOffset;
+    local_commandBuffer = commandBuffer;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkAccelerationStructureInfoNV*)pool->alloc(sizeof(const VkAccelerationStructureInfoNV));
+        deepcopy_VkAccelerationStructureInfoNV(pool, pInfo, (VkAccelerationStructureInfoNV*)(local_pInfo));
+    }
+    local_instanceData = instanceData;
+    local_instanceOffset = instanceOffset;
+    local_update = update;
+    local_dst = dst;
+    local_src = src;
+    local_scratch = scratch;
+    local_scratchOffset = scratchOffset;
+    if (local_pInfo)
+    {
+        transform_tohost_VkAccelerationStructureInfoNV(sResourceTracker, (VkAccelerationStructureInfoNV*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkAccelerationStructureInfoNV(sFeatureBits, (VkAccelerationStructureInfoNV*)(local_pInfo), countPtr);
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(VkBool32);
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_3;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_4;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+    }
+    uint32_t packetSize_vkCmdBuildAccelerationStructureNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBuildAccelerationStructureNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBuildAccelerationStructureNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBuildAccelerationStructureNV = OP_vkCmdBuildAccelerationStructureNV;
+    memcpy(streamPtr, &opcode_vkCmdBuildAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBuildAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkAccelerationStructureInfoNV(stream, (VkAccelerationStructureInfoNV*)(local_pInfo), streamPtrPtr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_instanceData));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_instanceOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (VkBool32*)&local_update, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkAccelerationStructureNV((*&local_dst));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkAccelerationStructureNV((*&local_src));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = get_host_u64_VkBuffer((*&local_scratch));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_3, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_scratchOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdCopyAccelerationStructureNV(
+    VkCommandBuffer commandBuffer,
+    VkAccelerationStructureNV dst,
+    VkAccelerationStructureNV src,
+    VkCopyAccelerationStructureModeKHR mode,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkAccelerationStructureNV local_dst;
+    VkAccelerationStructureNV local_src;
+    VkCopyAccelerationStructureModeKHR local_mode;
+    local_commandBuffer = commandBuffer;
+    local_dst = dst;
+    local_src = src;
+    local_mode = mode;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkCopyAccelerationStructureModeKHR);
+    }
+    uint32_t packetSize_vkCmdCopyAccelerationStructureNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyAccelerationStructureNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyAccelerationStructureNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyAccelerationStructureNV = OP_vkCmdCopyAccelerationStructureNV;
+    memcpy(streamPtr, &opcode_vkCmdCopyAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyAccelerationStructureNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureNV((*&local_dst));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkAccelerationStructureNV((*&local_src));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkCopyAccelerationStructureModeKHR*)&local_mode, sizeof(VkCopyAccelerationStructureModeKHR));
+    *streamPtrPtr += sizeof(VkCopyAccelerationStructureModeKHR);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdTraceRaysNV(
+    VkCommandBuffer commandBuffer,
+    VkBuffer raygenShaderBindingTableBuffer,
+    VkDeviceSize raygenShaderBindingOffset,
+    VkBuffer missShaderBindingTableBuffer,
+    VkDeviceSize missShaderBindingOffset,
+    VkDeviceSize missShaderBindingStride,
+    VkBuffer hitShaderBindingTableBuffer,
+    VkDeviceSize hitShaderBindingOffset,
+    VkDeviceSize hitShaderBindingStride,
+    VkBuffer callableShaderBindingTableBuffer,
+    VkDeviceSize callableShaderBindingOffset,
+    VkDeviceSize callableShaderBindingStride,
+    uint32_t width,
+    uint32_t height,
+    uint32_t depth,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBuffer local_raygenShaderBindingTableBuffer;
+    VkDeviceSize local_raygenShaderBindingOffset;
+    VkBuffer local_missShaderBindingTableBuffer;
+    VkDeviceSize local_missShaderBindingOffset;
+    VkDeviceSize local_missShaderBindingStride;
+    VkBuffer local_hitShaderBindingTableBuffer;
+    VkDeviceSize local_hitShaderBindingOffset;
+    VkDeviceSize local_hitShaderBindingStride;
+    VkBuffer local_callableShaderBindingTableBuffer;
+    VkDeviceSize local_callableShaderBindingOffset;
+    VkDeviceSize local_callableShaderBindingStride;
+    uint32_t local_width;
+    uint32_t local_height;
+    uint32_t local_depth;
+    local_commandBuffer = commandBuffer;
+    local_raygenShaderBindingTableBuffer = raygenShaderBindingTableBuffer;
+    local_raygenShaderBindingOffset = raygenShaderBindingOffset;
+    local_missShaderBindingTableBuffer = missShaderBindingTableBuffer;
+    local_missShaderBindingOffset = missShaderBindingOffset;
+    local_missShaderBindingStride = missShaderBindingStride;
+    local_hitShaderBindingTableBuffer = hitShaderBindingTableBuffer;
+    local_hitShaderBindingOffset = hitShaderBindingOffset;
+    local_hitShaderBindingStride = hitShaderBindingStride;
+    local_callableShaderBindingTableBuffer = callableShaderBindingTableBuffer;
+    local_callableShaderBindingOffset = callableShaderBindingOffset;
+    local_callableShaderBindingStride = callableShaderBindingStride;
+    local_width = width;
+    local_height = height;
+    local_depth = depth;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(VkDeviceSize);
+        uint64_t cgen_var_3;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(VkDeviceSize);
+        uint64_t cgen_var_4;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdTraceRaysNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdTraceRaysNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdTraceRaysNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdTraceRaysNV = OP_vkCmdTraceRaysNV;
+    memcpy(streamPtr, &opcode_vkCmdTraceRaysNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdTraceRaysNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_raygenShaderBindingTableBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_raygenShaderBindingOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_missShaderBindingTableBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_missShaderBindingOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_missShaderBindingStride, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkBuffer((*&local_hitShaderBindingTableBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_hitShaderBindingOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_hitShaderBindingStride, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = get_host_u64_VkBuffer((*&local_callableShaderBindingTableBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_3, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_callableShaderBindingOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_callableShaderBindingStride, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_width, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_height, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_depth, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkCreateRayTracingPipelinesNV(
+    VkDevice device,
+    VkPipelineCache pipelineCache,
+    uint32_t createInfoCount,
+    const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
+    const VkAllocationCallbacks* pAllocator,
+    VkPipeline* pPipelines,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipelineCache local_pipelineCache;
+    uint32_t local_createInfoCount;
+    VkRayTracingPipelineCreateInfoNV* local_pCreateInfos;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pipelineCache = pipelineCache;
+    local_createInfoCount = createInfoCount;
+    local_pCreateInfos = nullptr;
+    if (pCreateInfos)
+    {
+        local_pCreateInfos = (VkRayTracingPipelineCreateInfoNV*)pool->alloc(((createInfoCount)) * sizeof(const VkRayTracingPipelineCreateInfoNV));
+        for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+        {
+            deepcopy_VkRayTracingPipelineCreateInfoNV(pool, pCreateInfos + i, (VkRayTracingPipelineCreateInfoNV*)(local_pCreateInfos + i));
+        }
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+        {
+            transform_tohost_VkRayTracingPipelineCreateInfoNV(sResourceTracker, (VkRayTracingPipelineCreateInfoNV*)(local_pCreateInfos + i));
+        }
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+        {
+            count_VkRayTracingPipelineCreateInfoNV(sFeatureBits, (VkRayTracingPipelineCreateInfoNV*)(local_pCreateInfos + i), countPtr);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        if (((createInfoCount)))
+        {
+            *countPtr += ((createInfoCount)) * 8;
+        }
+    }
+    uint32_t packetSize_vkCreateRayTracingPipelinesNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateRayTracingPipelinesNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateRayTracingPipelinesNV = OP_vkCreateRayTracingPipelinesNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateRayTracingPipelinesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateRayTracingPipelinesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_createInfoCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+    {
+        reservedmarshal_VkRayTracingPipelineCreateInfoNV(stream, (VkRayTracingPipelineCreateInfoNV*)(local_pCreateInfos + i), streamPtrPtr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    if (((createInfoCount)))
+    {
+        uint8_t* cgen_var_3_ptr = (uint8_t*)(*streamPtrPtr);
+        for (uint32_t k = 0; k < ((createInfoCount)); ++k)
+        {
+            uint64_t tmpval = (uint64_t)(pPipelines[k]);
+            memcpy(cgen_var_3_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((createInfoCount));
+    }
+    /* is handle, possibly out */;
+    if (((createInfoCount)))
+    {
+        uint64_t* cgen_var_4;
+        stream->alloc((void**)&cgen_var_4, ((createInfoCount)) * 8);
+        stream->read((uint64_t*)cgen_var_4, ((createInfoCount)) * 8);
+        stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_4, (VkPipeline*)pPipelines, ((createInfoCount)));
+    }
+    VkResult vkCreateRayTracingPipelinesNV_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateRayTracingPipelinesNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateRayTracingPipelinesNV_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetRayTracingShaderGroupHandlesKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipeline local_pipeline;
+    uint32_t local_firstGroup;
+    uint32_t local_groupCount;
+    size_t local_dataSize;
+    local_device = device;
+    local_pipeline = pipeline;
+    local_firstGroup = firstGroup;
+    local_groupCount = groupCount;
+    local_dataSize = dataSize;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += 8;
+        *countPtr += ((dataSize)) * sizeof(uint8_t);
+    }
+    uint32_t packetSize_vkGetRayTracingShaderGroupHandlesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetRayTracingShaderGroupHandlesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetRayTracingShaderGroupHandlesKHR = OP_vkGetRayTracingShaderGroupHandlesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetRayTracingShaderGroupHandlesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetRayTracingShaderGroupHandlesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstGroup, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_groupCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    uint64_t cgen_var_2 = (uint64_t)local_dataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (void*)pData, ((dataSize)) * sizeof(uint8_t));
+    *streamPtrPtr += ((dataSize)) * sizeof(uint8_t);
+    stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t));
+    VkResult vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetRayTracingShaderGroupHandlesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetRayTracingShaderGroupHandlesKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetRayTracingShaderGroupHandlesNV(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipeline local_pipeline;
+    uint32_t local_firstGroup;
+    uint32_t local_groupCount;
+    size_t local_dataSize;
+    local_device = device;
+    local_pipeline = pipeline;
+    local_firstGroup = firstGroup;
+    local_groupCount = groupCount;
+    local_dataSize = dataSize;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += 8;
+        *countPtr += ((dataSize)) * sizeof(uint8_t);
+    }
+    uint32_t packetSize_vkGetRayTracingShaderGroupHandlesNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetRayTracingShaderGroupHandlesNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetRayTracingShaderGroupHandlesNV = OP_vkGetRayTracingShaderGroupHandlesNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetRayTracingShaderGroupHandlesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetRayTracingShaderGroupHandlesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstGroup, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_groupCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    uint64_t cgen_var_2 = (uint64_t)local_dataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (void*)pData, ((dataSize)) * sizeof(uint8_t));
+    *streamPtrPtr += ((dataSize)) * sizeof(uint8_t);
+    stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t));
+    VkResult vkGetRayTracingShaderGroupHandlesNV_VkResult_return = (VkResult)0;
+    stream->read(&vkGetRayTracingShaderGroupHandlesNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetRayTracingShaderGroupHandlesNV_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetAccelerationStructureHandleNV(
+    VkDevice device,
+    VkAccelerationStructureNV accelerationStructure,
+    size_t dataSize,
+    void* pData,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureNV local_accelerationStructure;
+    size_t local_dataSize;
+    local_device = device;
+    local_accelerationStructure = accelerationStructure;
+    local_dataSize = dataSize;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        *countPtr += ((dataSize)) * sizeof(uint8_t);
+    }
+    uint32_t packetSize_vkGetAccelerationStructureHandleNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetAccelerationStructureHandleNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetAccelerationStructureHandleNV = OP_vkGetAccelerationStructureHandleNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetAccelerationStructureHandleNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetAccelerationStructureHandleNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkAccelerationStructureNV((*&local_accelerationStructure));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_2 = (uint64_t)local_dataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (void*)pData, ((dataSize)) * sizeof(uint8_t));
+    *streamPtrPtr += ((dataSize)) * sizeof(uint8_t);
+    stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t));
+    VkResult vkGetAccelerationStructureHandleNV_VkResult_return = (VkResult)0;
+    stream->read(&vkGetAccelerationStructureHandleNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetAccelerationStructureHandleNV_VkResult_return;
+}
+
+void VkEncoder::vkCmdWriteAccelerationStructuresPropertiesNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t accelerationStructureCount,
+    const VkAccelerationStructureNV* pAccelerationStructures,
+    VkQueryType queryType,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_accelerationStructureCount;
+    VkAccelerationStructureNV* local_pAccelerationStructures;
+    VkQueryType local_queryType;
+    VkQueryPool local_queryPool;
+    uint32_t local_firstQuery;
+    local_commandBuffer = commandBuffer;
+    local_accelerationStructureCount = accelerationStructureCount;
+    // Avoiding deepcopy for pAccelerationStructures
+    local_pAccelerationStructures = (VkAccelerationStructureNV*)pAccelerationStructures;
+    local_queryType = queryType;
+    local_queryPool = queryPool;
+    local_firstQuery = firstQuery;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        if (((accelerationStructureCount)))
+        {
+            *countPtr += ((accelerationStructureCount)) * 8;
+        }
+        *countPtr += sizeof(VkQueryType);
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdWriteAccelerationStructuresPropertiesNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdWriteAccelerationStructuresPropertiesNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdWriteAccelerationStructuresPropertiesNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdWriteAccelerationStructuresPropertiesNV = OP_vkCmdWriteAccelerationStructuresPropertiesNV;
+    memcpy(streamPtr, &opcode_vkCmdWriteAccelerationStructuresPropertiesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdWriteAccelerationStructuresPropertiesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_accelerationStructureCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    if (((accelerationStructureCount)))
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
+        for (uint32_t k = 0; k < ((accelerationStructureCount)); ++k)
+        {
+            uint64_t tmpval = get_host_u64_VkAccelerationStructureNV(local_pAccelerationStructures[k]);
+            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((accelerationStructureCount));
+    }
+    memcpy(*streamPtrPtr, (VkQueryType*)&local_queryType, sizeof(VkQueryType));
+    *streamPtrPtr += sizeof(VkQueryType);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstQuery, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkCompileDeferredNV(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t shader,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipeline local_pipeline;
+    uint32_t local_shader;
+    local_device = device;
+    local_pipeline = pipeline;
+    local_shader = shader;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCompileDeferredNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCompileDeferredNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCompileDeferredNV = OP_vkCompileDeferredNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCompileDeferredNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCompileDeferredNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_shader, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    VkResult vkCompileDeferredNV_VkResult_return = (VkResult)0;
+    stream->read(&vkCompileDeferredNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCompileDeferredNV_VkResult_return;
+}
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+#endif
+#ifdef VK_EXT_filter_cubic
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 #endif
 #ifdef VK_EXT_external_memory_host
@@ -24172,7 +28775,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1300;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
         // WARNING PTR CHECK
@@ -24191,15 +28794,15 @@
     memcpy(streamPtr, &opcode_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryHostPointerPropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1301;
-    *&cgen_var_1301 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1301, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkExternalMemoryHandleTypeFlagBits*)&local_handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     *streamPtrPtr += sizeof(VkExternalMemoryHandleTypeFlagBits);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1302 = (uint64_t)(uintptr_t)local_pHostPointer;
-    memcpy((*streamPtrPtr), &cgen_var_1302, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pHostPointer;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pHostPointer)
@@ -24253,10 +28856,10 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1303;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkPipelineStageFlagBits);
-        uint64_t cgen_var_1304;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkDeviceSize);
         *countPtr += sizeof(uint32_t);
@@ -24270,16 +28873,16 @@
     memcpy(streamPtr, &packetSize_vkCmdWriteBufferMarkerAMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1305;
-        *&cgen_var_1305 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1305, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkPipelineStageFlagBits*)&local_pipelineStage, sizeof(VkPipelineStageFlagBits));
     *streamPtrPtr += sizeof(VkPipelineStageFlagBits);
-    uint64_t cgen_var_1306;
-    *&cgen_var_1306 = get_host_u64_VkBuffer((*&local_dstBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1306, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_dstBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkDeviceSize*)&local_dstOffset, sizeof(VkDeviceSize));
     *streamPtrPtr += sizeof(VkDeviceSize);
@@ -24295,12 +28898,494 @@
 }
 
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+VkResult VkEncoder::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pTimeDomainCount,
+    VkTimeDomainEXT* pTimeDomains,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    local_physicalDevice = physicalDevice;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pTimeDomainCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pTimeDomains)
+        {
+            if ((pTimeDomainCount) != nullptr)
+            {
+                *countPtr += (*(pTimeDomainCount)) * sizeof(VkTimeDomainEXT);
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pTimeDomainCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pTimeDomainCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pTimeDomainCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pTimeDomains;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pTimeDomains)
+    {
+        memcpy(*streamPtrPtr, (VkTimeDomainEXT*)pTimeDomains, (*(pTimeDomainCount)) * sizeof(VkTimeDomainEXT));
+        *streamPtrPtr += (*(pTimeDomainCount)) * sizeof(VkTimeDomainEXT);
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pTimeDomainCount;
+    check_pTimeDomainCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pTimeDomainCount)
+    {
+        if (!(check_pTimeDomainCount))
+        {
+            fprintf(stderr, "fatal: pTimeDomainCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pTimeDomainCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkTimeDomainEXT* check_pTimeDomains;
+    check_pTimeDomains = (VkTimeDomainEXT*)(uintptr_t)stream->getBe64();
+    if (pTimeDomains)
+    {
+        if (!(check_pTimeDomains))
+        {
+            fprintf(stderr, "fatal: pTimeDomains inconsistent between guest and host\n");
+        }
+        stream->read((VkTimeDomainEXT*)pTimeDomains, (*(pTimeDomainCount)) * sizeof(VkTimeDomainEXT));
+    }
+    VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetCalibratedTimestampsEXT(
+    VkDevice device,
+    uint32_t timestampCount,
+    const VkCalibratedTimestampInfoEXT* pTimestampInfos,
+    uint64_t* pTimestamps,
+    uint64_t* pMaxDeviation,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    uint32_t local_timestampCount;
+    VkCalibratedTimestampInfoEXT* local_pTimestampInfos;
+    local_device = device;
+    local_timestampCount = timestampCount;
+    local_pTimestampInfos = nullptr;
+    if (pTimestampInfos)
+    {
+        local_pTimestampInfos = (VkCalibratedTimestampInfoEXT*)pool->alloc(((timestampCount)) * sizeof(const VkCalibratedTimestampInfoEXT));
+        for (uint32_t i = 0; i < (uint32_t)((timestampCount)); ++i)
+        {
+            deepcopy_VkCalibratedTimestampInfoEXT(pool, pTimestampInfos + i, (VkCalibratedTimestampInfoEXT*)(local_pTimestampInfos + i));
+        }
+    }
+    if (local_pTimestampInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((timestampCount)); ++i)
+        {
+            transform_tohost_VkCalibratedTimestampInfoEXT(sResourceTracker, (VkCalibratedTimestampInfoEXT*)(local_pTimestampInfos + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((timestampCount)); ++i)
+        {
+            count_VkCalibratedTimestampInfoEXT(sFeatureBits, (VkCalibratedTimestampInfoEXT*)(local_pTimestampInfos + i), countPtr);
+        }
+        *countPtr += ((timestampCount)) * sizeof(uint64_t);
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkGetCalibratedTimestampsEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetCalibratedTimestampsEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetCalibratedTimestampsEXT = OP_vkGetCalibratedTimestampsEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetCalibratedTimestampsEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetCalibratedTimestampsEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_timestampCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((timestampCount)); ++i)
+    {
+        reservedmarshal_VkCalibratedTimestampInfoEXT(stream, (VkCalibratedTimestampInfoEXT*)(local_pTimestampInfos + i), streamPtrPtr);
+    }
+    memcpy(*streamPtrPtr, (uint64_t*)pTimestamps, ((timestampCount)) * sizeof(uint64_t));
+    *streamPtrPtr += ((timestampCount)) * sizeof(uint64_t);
+    memcpy(*streamPtrPtr, (uint64_t*)pMaxDeviation, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    stream->read((uint64_t*)pTimestamps, ((timestampCount)) * sizeof(uint64_t));
+    stream->read((uint64_t*)pMaxDeviation, sizeof(uint64_t));
+    VkResult vkGetCalibratedTimestampsEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkGetCalibratedTimestampsEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetCalibratedTimestampsEXT_VkResult_return;
+}
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 #endif
+#ifdef VK_GGP_frame_token
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+#endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+#endif
+#ifdef VK_NV_mesh_shader
+void VkEncoder::vkCmdDrawMeshTasksNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t taskCount,
+    uint32_t firstTask,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_taskCount;
+    uint32_t local_firstTask;
+    local_commandBuffer = commandBuffer;
+    local_taskCount = taskCount;
+    local_firstTask = firstTask;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdDrawMeshTasksNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawMeshTasksNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawMeshTasksNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawMeshTasksNV = OP_vkCmdDrawMeshTasksNV;
+    memcpy(streamPtr, &opcode_vkCmdDrawMeshTasksNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawMeshTasksNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_taskCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstTask, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdDrawMeshTasksIndirectNV(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    uint32_t drawCount,
+    uint32_t stride,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBuffer local_buffer;
+    VkDeviceSize local_offset;
+    uint32_t local_drawCount;
+    uint32_t local_stride;
+    local_commandBuffer = commandBuffer;
+    local_buffer = buffer;
+    local_offset = offset;
+    local_drawCount = drawCount;
+    local_stride = stride;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdDrawMeshTasksIndirectNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawMeshTasksIndirectNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawMeshTasksIndirectNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawMeshTasksIndirectNV = OP_vkCmdDrawMeshTasksIndirectNV;
+    memcpy(streamPtr, &opcode_vkCmdDrawMeshTasksIndirectNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawMeshTasksIndirectNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_drawCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_stride, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdDrawMeshTasksIndirectCountNV(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    VkBuffer countBuffer,
+    VkDeviceSize countBufferOffset,
+    uint32_t maxDrawCount,
+    uint32_t stride,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBuffer local_buffer;
+    VkDeviceSize local_offset;
+    VkBuffer local_countBuffer;
+    VkDeviceSize local_countBufferOffset;
+    uint32_t local_maxDrawCount;
+    uint32_t local_stride;
+    local_commandBuffer = commandBuffer;
+    local_buffer = buffer;
+    local_offset = offset;
+    local_countBuffer = countBuffer;
+    local_countBufferOffset = countBufferOffset;
+    local_maxDrawCount = maxDrawCount;
+    local_stride = stride;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkDeviceSize);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdDrawMeshTasksIndirectCountNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdDrawMeshTasksIndirectCountNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdDrawMeshTasksIndirectCountNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdDrawMeshTasksIndirectCountNV = OP_vkCmdDrawMeshTasksIndirectCountNV;
+    memcpy(streamPtr, &opcode_vkCmdDrawMeshTasksIndirectCountNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdDrawMeshTasksIndirectCountNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_offset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_countBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkDeviceSize*)&local_countBufferOffset, sizeof(VkDeviceSize));
+    *streamPtrPtr += sizeof(VkDeviceSize);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_maxDrawCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_stride, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+#endif
+#ifdef VK_NV_shader_image_footprint
+#endif
+#ifdef VK_NV_scissor_exclusive
+void VkEncoder::vkCmdSetExclusiveScissorNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstExclusiveScissor,
+    uint32_t exclusiveScissorCount,
+    const VkRect2D* pExclusiveScissors,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_firstExclusiveScissor;
+    uint32_t local_exclusiveScissorCount;
+    VkRect2D* local_pExclusiveScissors;
+    local_commandBuffer = commandBuffer;
+    local_firstExclusiveScissor = firstExclusiveScissor;
+    local_exclusiveScissorCount = exclusiveScissorCount;
+    local_pExclusiveScissors = nullptr;
+    if (pExclusiveScissors)
+    {
+        local_pExclusiveScissors = (VkRect2D*)pool->alloc(((exclusiveScissorCount)) * sizeof(const VkRect2D));
+        for (uint32_t i = 0; i < (uint32_t)((exclusiveScissorCount)); ++i)
+        {
+            deepcopy_VkRect2D(pool, pExclusiveScissors + i, (VkRect2D*)(local_pExclusiveScissors + i));
+        }
+    }
+    if (local_pExclusiveScissors)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((exclusiveScissorCount)); ++i)
+        {
+            transform_tohost_VkRect2D(sResourceTracker, (VkRect2D*)(local_pExclusiveScissors + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((exclusiveScissorCount)); ++i)
+        {
+            count_VkRect2D(sFeatureBits, (VkRect2D*)(local_pExclusiveScissors + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkCmdSetExclusiveScissorNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetExclusiveScissorNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetExclusiveScissorNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetExclusiveScissorNV = OP_vkCmdSetExclusiveScissorNV;
+    memcpy(streamPtr, &opcode_vkCmdSetExclusiveScissorNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetExclusiveScissorNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstExclusiveScissor, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_exclusiveScissorCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((exclusiveScissorCount)); ++i)
+    {
+        reservedmarshal_VkRect2D(stream, (VkRect2D*)(local_pExclusiveScissors + i), streamPtrPtr);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void VkEncoder::vkCmdSetCheckpointNV(
     VkCommandBuffer commandBuffer,
@@ -24320,7 +29405,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1307;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -24338,14 +29423,14 @@
     memcpy(streamPtr, &packetSize_vkCmdSetCheckpointNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1308;
-        *&cgen_var_1308 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1308, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1309 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
-    memcpy((*streamPtrPtr), &cgen_var_1309, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)local_pCheckpointMarker;
+    memcpy((*streamPtrPtr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pCheckpointMarker)
@@ -24378,7 +29463,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1310;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -24390,9 +29475,12 @@
         *countPtr += 8;
         if (pCheckpointData)
         {
-            for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+            if ((pCheckpointDataCount) != nullptr)
             {
-                count_VkCheckpointDataNV(sFeatureBits, (VkCheckpointDataNV*)(pCheckpointData + i), countPtr);
+                for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+                {
+                    count_VkCheckpointDataNV(sFeatureBits, (VkCheckpointDataNV*)(pCheckpointData + i), countPtr);
+                }
             }
         }
     }
@@ -24404,13 +29492,13 @@
     memcpy(streamPtr, &opcode_vkGetQueueCheckpointDataNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetQueueCheckpointDataNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1311;
-    *&cgen_var_1311 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1311, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1312 = (uint64_t)(uintptr_t)pCheckpointDataCount;
-    memcpy((*streamPtrPtr), &cgen_var_1312, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pCheckpointDataCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pCheckpointDataCount)
@@ -24419,8 +29507,8 @@
         *streamPtrPtr += sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1313 = (uint64_t)(uintptr_t)pCheckpointData;
-    memcpy((*streamPtrPtr), &cgen_var_1313, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pCheckpointData;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pCheckpointData)
@@ -24450,16 +29538,22 @@
         {
             fprintf(stderr, "fatal: pCheckpointData inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+        if ((pCheckpointDataCount) != nullptr)
         {
-            unmarshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+            {
+                unmarshal_VkCheckpointDataNV(stream, (VkCheckpointDataNV*)(pCheckpointData + i));
+            }
         }
     }
-    if (pCheckpointData)
+    if ((pCheckpointDataCount) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+        if (pCheckpointData)
         {
-            transform_fromhost_VkCheckpointDataNV(sResourceTracker, (VkCheckpointDataNV*)(pCheckpointData + i));
+            for (uint32_t i = 0; i < (uint32_t)(*(pCheckpointDataCount)); ++i)
+            {
+                transform_fromhost_VkCheckpointDataNV(sResourceTracker, (VkCheckpointDataNV*)(pCheckpointData + i));
+            }
         }
     }
     ++encodeCount;;
@@ -24472,78 +29566,54 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_address_space
-VkResult VkEncoder::vkMapMemoryIntoAddressSpaceGOOGLE(
+#ifdef VK_INTEL_shader_integer_functions2
+#endif
+#ifdef VK_INTEL_performance_query
+VkResult VkEncoder::vkInitializePerformanceApiINTEL(
     VkDevice device,
-    VkDeviceMemory memory,
-    uint64_t* pAddress,
+    const VkInitializePerformanceApiInfoINTEL* pInitializeInfo,
     uint32_t doLock)
 {
     (void)doLock;
     bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
     if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    sResourceTracker->on_vkMapMemoryIntoAddressSpaceGOOGLE_pre(this, VK_SUCCESS, device, memory, pAddress);
     auto stream = mImpl->stream();
     auto pool = mImpl->pool();
     VkDevice local_device;
-    VkDeviceMemory local_memory;
+    VkInitializePerformanceApiInfoINTEL* local_pInitializeInfo;
     local_device = device;
-    local_memory = memory;
-    sResourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    local_pInitializeInfo = nullptr;
+    if (pInitializeInfo)
+    {
+        local_pInitializeInfo = (VkInitializePerformanceApiInfoINTEL*)pool->alloc(sizeof(const VkInitializePerformanceApiInfoINTEL));
+        deepcopy_VkInitializePerformanceApiInfoINTEL(pool, pInitializeInfo, (VkInitializePerformanceApiInfoINTEL*)(local_pInitializeInfo));
+    }
+    if (local_pInitializeInfo)
+    {
+        transform_tohost_VkInitializePerformanceApiInfoINTEL(sResourceTracker, (VkInitializePerformanceApiInfoINTEL*)(local_pInitializeInfo));
+    }
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1316;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1317;
-        *countPtr += 1 * 8;
-        // WARNING PTR CHECK
-        *countPtr += 8;
-        if (pAddress)
-        {
-            *countPtr += sizeof(uint64_t);
-        }
+        count_VkInitializePerformanceApiInfoINTEL(sFeatureBits, (VkInitializePerformanceApiInfoINTEL*)(local_pInitializeInfo), countPtr);
     }
-    uint32_t packetSize_vkMapMemoryIntoAddressSpaceGOOGLE = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkMapMemoryIntoAddressSpaceGOOGLE);
+    uint32_t packetSize_vkInitializePerformanceApiINTEL = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkInitializePerformanceApiINTEL);
     uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkMapMemoryIntoAddressSpaceGOOGLE = OP_vkMapMemoryIntoAddressSpaceGOOGLE;
+    uint32_t opcode_vkInitializePerformanceApiINTEL = OP_vkInitializePerformanceApiINTEL;
     uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &opcode_vkInitializePerformanceApiINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkInitializePerformanceApiINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1318;
-    *&cgen_var_1318 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1318, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1319;
-    *&cgen_var_1319 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1319, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_1320 = (uint64_t)(uintptr_t)pAddress;
-    memcpy((*streamPtrPtr), &cgen_var_1320, 8);
-    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
-    *streamPtrPtr += 8;
-    if (pAddress)
-    {
-        memcpy(*streamPtrPtr, (uint64_t*)pAddress, sizeof(uint64_t));
-        *streamPtrPtr += sizeof(uint64_t);
-    }
-    // WARNING PTR CHECK
-    uint64_t* check_pAddress;
-    check_pAddress = (uint64_t*)(uintptr_t)stream->getBe64();
-    if (pAddress)
-    {
-        if (!(check_pAddress))
-        {
-            fprintf(stderr, "fatal: pAddress inconsistent between guest and host\n");
-        }
-        stream->read((uint64_t*)pAddress, sizeof(uint64_t));
-    }
-    VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
-    stream->read(&vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, sizeof(VkResult));
-    sResourceTracker->on_vkMapMemoryIntoAddressSpaceGOOGLE(this, vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, device, memory, pAddress);
+    reservedmarshal_VkInitializePerformanceApiInfoINTEL(stream, (VkInitializePerformanceApiInfoINTEL*)(local_pInitializeInfo), streamPtrPtr);
+    VkResult vkInitializePerformanceApiINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkInitializePerformanceApiINTEL_VkResult_return, sizeof(VkResult));
     ++encodeCount;;
     if (0 == encodeCount % POOL_CLEAR_INTERVAL)
     {
@@ -24551,7 +29621,684 @@
         stream->clearPool();
     }
     if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
+    return vkInitializePerformanceApiINTEL_VkResult_return;
+}
+
+void VkEncoder::vkUninitializePerformanceApiINTEL(
+    VkDevice device,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    local_device = device;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkUninitializePerformanceApiINTEL = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkUninitializePerformanceApiINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkUninitializePerformanceApiINTEL = OP_vkUninitializePerformanceApiINTEL;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkUninitializePerformanceApiINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkUninitializePerformanceApiINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkCmdSetPerformanceMarkerINTEL(
+    VkCommandBuffer commandBuffer,
+    const VkPerformanceMarkerInfoINTEL* pMarkerInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkPerformanceMarkerInfoINTEL* local_pMarkerInfo;
+    local_commandBuffer = commandBuffer;
+    local_pMarkerInfo = nullptr;
+    if (pMarkerInfo)
+    {
+        local_pMarkerInfo = (VkPerformanceMarkerInfoINTEL*)pool->alloc(sizeof(const VkPerformanceMarkerInfoINTEL));
+        deepcopy_VkPerformanceMarkerInfoINTEL(pool, pMarkerInfo, (VkPerformanceMarkerInfoINTEL*)(local_pMarkerInfo));
+    }
+    if (local_pMarkerInfo)
+    {
+        transform_tohost_VkPerformanceMarkerInfoINTEL(sResourceTracker, (VkPerformanceMarkerInfoINTEL*)(local_pMarkerInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPerformanceMarkerInfoINTEL(sFeatureBits, (VkPerformanceMarkerInfoINTEL*)(local_pMarkerInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdSetPerformanceMarkerINTEL = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetPerformanceMarkerINTEL -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetPerformanceMarkerINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetPerformanceMarkerINTEL = OP_vkCmdSetPerformanceMarkerINTEL;
+    memcpy(streamPtr, &opcode_vkCmdSetPerformanceMarkerINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetPerformanceMarkerINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkPerformanceMarkerInfoINTEL(stream, (VkPerformanceMarkerInfoINTEL*)(local_pMarkerInfo), streamPtrPtr);
+    VkResult vkCmdSetPerformanceMarkerINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkCmdSetPerformanceMarkerINTEL_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCmdSetPerformanceMarkerINTEL_VkResult_return;
+}
+
+VkResult VkEncoder::vkCmdSetPerformanceStreamMarkerINTEL(
+    VkCommandBuffer commandBuffer,
+    const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkPerformanceStreamMarkerInfoINTEL* local_pMarkerInfo;
+    local_commandBuffer = commandBuffer;
+    local_pMarkerInfo = nullptr;
+    if (pMarkerInfo)
+    {
+        local_pMarkerInfo = (VkPerformanceStreamMarkerInfoINTEL*)pool->alloc(sizeof(const VkPerformanceStreamMarkerInfoINTEL));
+        deepcopy_VkPerformanceStreamMarkerInfoINTEL(pool, pMarkerInfo, (VkPerformanceStreamMarkerInfoINTEL*)(local_pMarkerInfo));
+    }
+    if (local_pMarkerInfo)
+    {
+        transform_tohost_VkPerformanceStreamMarkerInfoINTEL(sResourceTracker, (VkPerformanceStreamMarkerInfoINTEL*)(local_pMarkerInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPerformanceStreamMarkerInfoINTEL(sFeatureBits, (VkPerformanceStreamMarkerInfoINTEL*)(local_pMarkerInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdSetPerformanceStreamMarkerINTEL = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetPerformanceStreamMarkerINTEL -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetPerformanceStreamMarkerINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetPerformanceStreamMarkerINTEL = OP_vkCmdSetPerformanceStreamMarkerINTEL;
+    memcpy(streamPtr, &opcode_vkCmdSetPerformanceStreamMarkerINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetPerformanceStreamMarkerINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkPerformanceStreamMarkerInfoINTEL(stream, (VkPerformanceStreamMarkerInfoINTEL*)(local_pMarkerInfo), streamPtrPtr);
+    VkResult vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return;
+}
+
+VkResult VkEncoder::vkCmdSetPerformanceOverrideINTEL(
+    VkCommandBuffer commandBuffer,
+    const VkPerformanceOverrideInfoINTEL* pOverrideInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkPerformanceOverrideInfoINTEL* local_pOverrideInfo;
+    local_commandBuffer = commandBuffer;
+    local_pOverrideInfo = nullptr;
+    if (pOverrideInfo)
+    {
+        local_pOverrideInfo = (VkPerformanceOverrideInfoINTEL*)pool->alloc(sizeof(const VkPerformanceOverrideInfoINTEL));
+        deepcopy_VkPerformanceOverrideInfoINTEL(pool, pOverrideInfo, (VkPerformanceOverrideInfoINTEL*)(local_pOverrideInfo));
+    }
+    if (local_pOverrideInfo)
+    {
+        transform_tohost_VkPerformanceOverrideInfoINTEL(sResourceTracker, (VkPerformanceOverrideInfoINTEL*)(local_pOverrideInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPerformanceOverrideInfoINTEL(sFeatureBits, (VkPerformanceOverrideInfoINTEL*)(local_pOverrideInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdSetPerformanceOverrideINTEL = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetPerformanceOverrideINTEL -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetPerformanceOverrideINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetPerformanceOverrideINTEL = OP_vkCmdSetPerformanceOverrideINTEL;
+    memcpy(streamPtr, &opcode_vkCmdSetPerformanceOverrideINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetPerformanceOverrideINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkPerformanceOverrideInfoINTEL(stream, (VkPerformanceOverrideInfoINTEL*)(local_pOverrideInfo), streamPtrPtr);
+    VkResult vkCmdSetPerformanceOverrideINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkCmdSetPerformanceOverrideINTEL_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCmdSetPerformanceOverrideINTEL_VkResult_return;
+}
+
+VkResult VkEncoder::vkAcquirePerformanceConfigurationINTEL(
+    VkDevice device,
+    const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
+    VkPerformanceConfigurationINTEL* pConfiguration,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPerformanceConfigurationAcquireInfoINTEL* local_pAcquireInfo;
+    local_device = device;
+    local_pAcquireInfo = nullptr;
+    if (pAcquireInfo)
+    {
+        local_pAcquireInfo = (VkPerformanceConfigurationAcquireInfoINTEL*)pool->alloc(sizeof(const VkPerformanceConfigurationAcquireInfoINTEL));
+        deepcopy_VkPerformanceConfigurationAcquireInfoINTEL(pool, pAcquireInfo, (VkPerformanceConfigurationAcquireInfoINTEL*)(local_pAcquireInfo));
+    }
+    if (local_pAcquireInfo)
+    {
+        transform_tohost_VkPerformanceConfigurationAcquireInfoINTEL(sResourceTracker, (VkPerformanceConfigurationAcquireInfoINTEL*)(local_pAcquireInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPerformanceConfigurationAcquireInfoINTEL(sFeatureBits, (VkPerformanceConfigurationAcquireInfoINTEL*)(local_pAcquireInfo), countPtr);
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkAcquirePerformanceConfigurationINTEL = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkAcquirePerformanceConfigurationINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkAcquirePerformanceConfigurationINTEL = OP_vkAcquirePerformanceConfigurationINTEL;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkAcquirePerformanceConfigurationINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkAcquirePerformanceConfigurationINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkPerformanceConfigurationAcquireInfoINTEL(stream, (VkPerformanceConfigurationAcquireInfoINTEL*)(local_pAcquireInfo), streamPtrPtr);
+    uint64_t cgen_var_1 = (uint64_t)(*pConfiguration);
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pConfiguration) = (VkPerformanceConfigurationINTEL)stream->getBe64();
+    VkResult vkAcquirePerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkAcquirePerformanceConfigurationINTEL_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkAcquirePerformanceConfigurationINTEL_VkResult_return;
+}
+
+VkResult VkEncoder::vkReleasePerformanceConfigurationINTEL(
+    VkDevice device,
+    VkPerformanceConfigurationINTEL configuration,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPerformanceConfigurationINTEL local_configuration;
+    local_device = device;
+    local_configuration = configuration;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkReleasePerformanceConfigurationINTEL = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkReleasePerformanceConfigurationINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkReleasePerformanceConfigurationINTEL = OP_vkReleasePerformanceConfigurationINTEL;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkReleasePerformanceConfigurationINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkReleasePerformanceConfigurationINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_configuration;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    VkResult vkReleasePerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkReleasePerformanceConfigurationINTEL_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkReleasePerformanceConfigurationINTEL_VkResult_return;
+}
+
+VkResult VkEncoder::vkQueueSetPerformanceConfigurationINTEL(
+    VkQueue queue,
+    VkPerformanceConfigurationINTEL configuration,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkQueue local_queue;
+    VkPerformanceConfigurationINTEL local_configuration;
+    local_queue = queue;
+    local_configuration = configuration;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkQueueSetPerformanceConfigurationINTEL = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkQueueSetPerformanceConfigurationINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkQueueSetPerformanceConfigurationINTEL = OP_vkQueueSetPerformanceConfigurationINTEL;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkQueueSetPerformanceConfigurationINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkQueueSetPerformanceConfigurationINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_configuration;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    VkResult vkQueueSetPerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkQueueSetPerformanceConfigurationINTEL_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkQueueSetPerformanceConfigurationINTEL_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetPerformanceParameterINTEL(
+    VkDevice device,
+    VkPerformanceParameterTypeINTEL parameter,
+    VkPerformanceValueINTEL* pValue,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPerformanceParameterTypeINTEL local_parameter;
+    local_device = device;
+    local_parameter = parameter;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkPerformanceParameterTypeINTEL);
+        count_VkPerformanceValueINTEL(sFeatureBits, (VkPerformanceValueINTEL*)(pValue), countPtr);
+    }
+    uint32_t packetSize_vkGetPerformanceParameterINTEL = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPerformanceParameterINTEL);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPerformanceParameterINTEL = OP_vkGetPerformanceParameterINTEL;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPerformanceParameterINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPerformanceParameterINTEL, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkPerformanceParameterTypeINTEL*)&local_parameter, sizeof(VkPerformanceParameterTypeINTEL));
+    *streamPtrPtr += sizeof(VkPerformanceParameterTypeINTEL);
+    reservedmarshal_VkPerformanceValueINTEL(stream, (VkPerformanceValueINTEL*)(pValue), streamPtrPtr);
+    unmarshal_VkPerformanceValueINTEL(stream, (VkPerformanceValueINTEL*)(pValue));
+    if (pValue)
+    {
+        transform_fromhost_VkPerformanceValueINTEL(sResourceTracker, (VkPerformanceValueINTEL*)(pValue));
+    }
+    VkResult vkGetPerformanceParameterINTEL_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPerformanceParameterINTEL_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPerformanceParameterINTEL_VkResult_return;
+}
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+#endif
+#ifdef VK_AMD_display_native_hdr
+void VkEncoder::vkSetLocalDimmingAMD(
+    VkDevice device,
+    VkSwapchainKHR swapChain,
+    VkBool32 localDimmingEnable,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSwapchainKHR local_swapChain;
+    VkBool32 local_localDimmingEnable;
+    local_device = device;
+    local_swapChain = swapChain;
+    local_localDimmingEnable = localDimmingEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkSetLocalDimmingAMD = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSetLocalDimmingAMD);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSetLocalDimmingAMD = OP_vkSetLocalDimmingAMD;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSetLocalDimmingAMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSetLocalDimmingAMD, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapChain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkBool32*)&local_localDimmingEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+VkResult VkEncoder::vkCreateImagePipeSurfaceFUCHSIA(
+    VkInstance instance,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkInstance local_instance;
+    VkImagePipeSurfaceCreateInfoFUCHSIA* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_instance = instance;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkImagePipeSurfaceCreateInfoFUCHSIA*)pool->alloc(sizeof(const VkImagePipeSurfaceCreateInfoFUCHSIA));
+        deepcopy_VkImagePipeSurfaceCreateInfoFUCHSIA(pool, pCreateInfo, (VkImagePipeSurfaceCreateInfoFUCHSIA*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkImagePipeSurfaceCreateInfoFUCHSIA(sResourceTracker, (VkImagePipeSurfaceCreateInfoFUCHSIA*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkImagePipeSurfaceCreateInfoFUCHSIA(sFeatureBits, (VkImagePipeSurfaceCreateInfoFUCHSIA*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateImagePipeSurfaceFUCHSIA = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateImagePipeSurfaceFUCHSIA);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateImagePipeSurfaceFUCHSIA = OP_vkCreateImagePipeSurfaceFUCHSIA;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateImagePipeSurfaceFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateImagePipeSurfaceFUCHSIA, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkImagePipeSurfaceCreateInfoFUCHSIA(stream, (VkImagePipeSurfaceCreateInfoFUCHSIA*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
+    VkResult vkCreateImagePipeSurfaceFUCHSIA_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateImagePipeSurfaceFUCHSIA_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateImagePipeSurfaceFUCHSIA_VkResult_return;
+}
+
+#endif
+#ifdef VK_EXT_metal_surface
+VkResult VkEncoder::vkCreateMetalSurfaceEXT(
+    VkInstance instance,
+    const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkInstance local_instance;
+    VkMetalSurfaceCreateInfoEXT* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_instance = instance;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkMetalSurfaceCreateInfoEXT*)pool->alloc(sizeof(const VkMetalSurfaceCreateInfoEXT));
+        deepcopy_VkMetalSurfaceCreateInfoEXT(pool, pCreateInfo, (VkMetalSurfaceCreateInfoEXT*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkMetalSurfaceCreateInfoEXT(sResourceTracker, (VkMetalSurfaceCreateInfoEXT*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkMetalSurfaceCreateInfoEXT(sFeatureBits, (VkMetalSurfaceCreateInfoEXT*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateMetalSurfaceEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateMetalSurfaceEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateMetalSurfaceEXT = OP_vkCreateMetalSurfaceEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateMetalSurfaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateMetalSurfaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkMetalSurfaceCreateInfoEXT(stream, (VkMetalSurfaceCreateInfoEXT*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
+    VkResult vkCreateMetalSurfaceEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateMetalSurfaceEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateMetalSurfaceEXT_VkResult_return;
 }
 
 #endif
@@ -24576,9 +30323,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1322;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1323;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -24590,13 +30337,13 @@
     memcpy(streamPtr, &opcode_vkRegisterImageColorBufferGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkRegisterImageColorBufferGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1324;
-    *&cgen_var_1324 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1324, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1325;
-    *&cgen_var_1325 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1325, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&local_image));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_colorBuffer, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -24632,9 +30379,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1326;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1327;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
     }
@@ -24646,13 +30393,13 @@
     memcpy(streamPtr, &opcode_vkRegisterBufferColorBufferGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkRegisterBufferColorBufferGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1328;
-    *&cgen_var_1328 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1328, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1329;
-    *&cgen_var_1329 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1329, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&local_buffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_colorBuffer, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -24669,7 +30416,2698 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+#endif
+#ifdef VK_GOOGLE_hlsl_functionality1
+#endif
+#ifdef VK_GOOGLE_decorate_string
+#endif
+#ifdef VK_EXT_subgroup_size_control
+#endif
+#ifdef VK_AMD_shader_core_properties2
+#endif
+#ifdef VK_AMD_device_coherent_memory
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+#endif
+#ifdef VK_EXT_memory_budget
+#endif
+#ifdef VK_EXT_memory_priority
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+#endif
+#ifdef VK_EXT_buffer_device_address
+VkDeviceAddress VkEncoder::vkGetBufferDeviceAddressEXT(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkBufferDeviceAddressInfo* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkBufferDeviceAddressInfo*)pool->alloc(sizeof(const VkBufferDeviceAddressInfo));
+        deepcopy_VkBufferDeviceAddressInfo(pool, pInfo, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkBufferDeviceAddressInfo(sResourceTracker, (VkBufferDeviceAddressInfo*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkBufferDeviceAddressInfo(sFeatureBits, (VkBufferDeviceAddressInfo*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetBufferDeviceAddressEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetBufferDeviceAddressEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetBufferDeviceAddressEXT = OP_vkGetBufferDeviceAddressEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetBufferDeviceAddressEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetBufferDeviceAddressEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkBufferDeviceAddressInfo(stream, (VkBufferDeviceAddressInfo*)(local_pInfo), streamPtrPtr);
+    VkDeviceAddress vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = (VkDeviceAddress)0;
+    stream->read(&vkGetBufferDeviceAddressEXT_VkDeviceAddress_return, sizeof(VkDeviceAddress));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetBufferDeviceAddressEXT_VkDeviceAddress_return;
+}
+
+#endif
+#ifdef VK_EXT_tooling_info
+VkResult VkEncoder::vkGetPhysicalDeviceToolPropertiesEXT(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pToolCount,
+    VkPhysicalDeviceToolPropertiesEXT* pToolProperties,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    local_physicalDevice = physicalDevice;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pToolCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pToolProperties)
+        {
+            if ((pToolCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pToolCount)); ++i)
+                {
+                    count_VkPhysicalDeviceToolPropertiesEXT(sFeatureBits, (VkPhysicalDeviceToolPropertiesEXT*)(pToolProperties + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceToolPropertiesEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceToolPropertiesEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceToolPropertiesEXT = OP_vkGetPhysicalDeviceToolPropertiesEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceToolPropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceToolPropertiesEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pToolCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pToolCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pToolCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pToolProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pToolProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pToolCount)); ++i)
+        {
+            reservedmarshal_VkPhysicalDeviceToolPropertiesEXT(stream, (VkPhysicalDeviceToolPropertiesEXT*)(pToolProperties + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pToolCount;
+    check_pToolCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pToolCount)
+    {
+        if (!(check_pToolCount))
+        {
+            fprintf(stderr, "fatal: pToolCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pToolCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkPhysicalDeviceToolPropertiesEXT* check_pToolProperties;
+    check_pToolProperties = (VkPhysicalDeviceToolPropertiesEXT*)(uintptr_t)stream->getBe64();
+    if (pToolProperties)
+    {
+        if (!(check_pToolProperties))
+        {
+            fprintf(stderr, "fatal: pToolProperties inconsistent between guest and host\n");
+        }
+        if ((pToolCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pToolCount)); ++i)
+            {
+                unmarshal_VkPhysicalDeviceToolPropertiesEXT(stream, (VkPhysicalDeviceToolPropertiesEXT*)(pToolProperties + i));
+            }
+        }
+    }
+    if ((pToolCount) != nullptr)
+    {
+        if (pToolProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pToolCount)); ++i)
+            {
+                transform_fromhost_VkPhysicalDeviceToolPropertiesEXT(sResourceTracker, (VkPhysicalDeviceToolPropertiesEXT*)(pToolProperties + i));
+            }
+        }
+    }
+    VkResult vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return;
+}
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+#endif
+#ifdef VK_NV_cooperative_matrix
+VkResult VkEncoder::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pPropertyCount,
+    VkCooperativeMatrixPropertiesNV* pProperties,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    local_physicalDevice = physicalDevice;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pPropertyCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pProperties)
+        {
+            if ((pPropertyCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+                {
+                    count_VkCooperativeMatrixPropertiesNV(sFeatureBits, (VkCooperativeMatrixPropertiesNV*)(pProperties + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPropertyCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pPropertyCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pPropertyCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pProperties;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+        {
+            reservedmarshal_VkCooperativeMatrixPropertiesNV(stream, (VkCooperativeMatrixPropertiesNV*)(pProperties + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pPropertyCount;
+    check_pPropertyCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pPropertyCount)
+    {
+        if (!(check_pPropertyCount))
+        {
+            fprintf(stderr, "fatal: pPropertyCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pPropertyCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkCooperativeMatrixPropertiesNV* check_pProperties;
+    check_pProperties = (VkCooperativeMatrixPropertiesNV*)(uintptr_t)stream->getBe64();
+    if (pProperties)
+    {
+        if (!(check_pProperties))
+        {
+            fprintf(stderr, "fatal: pProperties inconsistent between guest and host\n");
+        }
+        if ((pPropertyCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                unmarshal_VkCooperativeMatrixPropertiesNV(stream, (VkCooperativeMatrixPropertiesNV*)(pProperties + i));
+            }
+        }
+    }
+    if ((pPropertyCount) != nullptr)
+    {
+        if (pProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pPropertyCount)); ++i)
+            {
+                transform_fromhost_VkCooperativeMatrixPropertiesNV(sResourceTracker, (VkCooperativeMatrixPropertiesNV*)(pProperties + i));
+            }
+        }
+    }
+    VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return;
+}
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+VkResult VkEncoder::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pCombinationCount,
+    VkFramebufferMixedSamplesCombinationNV* pCombinations,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    local_physicalDevice = physicalDevice;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pCombinationCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pCombinations)
+        {
+            if ((pCombinationCount) != nullptr)
+            {
+                for (uint32_t i = 0; i < (uint32_t)(*(pCombinationCount)); ++i)
+                {
+                    count_VkFramebufferMixedSamplesCombinationNV(sFeatureBits, (VkFramebufferMixedSamplesCombinationNV*)(pCombinations + i), countPtr);
+                }
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pCombinationCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pCombinationCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pCombinationCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pCombinations;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pCombinations)
+    {
+        for (uint32_t i = 0; i < (uint32_t)(*(pCombinationCount)); ++i)
+        {
+            reservedmarshal_VkFramebufferMixedSamplesCombinationNV(stream, (VkFramebufferMixedSamplesCombinationNV*)(pCombinations + i), streamPtrPtr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pCombinationCount;
+    check_pCombinationCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pCombinationCount)
+    {
+        if (!(check_pCombinationCount))
+        {
+            fprintf(stderr, "fatal: pCombinationCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pCombinationCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkFramebufferMixedSamplesCombinationNV* check_pCombinations;
+    check_pCombinations = (VkFramebufferMixedSamplesCombinationNV*)(uintptr_t)stream->getBe64();
+    if (pCombinations)
+    {
+        if (!(check_pCombinations))
+        {
+            fprintf(stderr, "fatal: pCombinations inconsistent between guest and host\n");
+        }
+        if ((pCombinationCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCombinationCount)); ++i)
+            {
+                unmarshal_VkFramebufferMixedSamplesCombinationNV(stream, (VkFramebufferMixedSamplesCombinationNV*)(pCombinations + i));
+            }
+        }
+    }
+    if ((pCombinationCount) != nullptr)
+    {
+        if (pCombinations)
+        {
+            for (uint32_t i = 0; i < (uint32_t)(*(pCombinationCount)); ++i)
+            {
+                transform_fromhost_VkFramebufferMixedSamplesCombinationNV(sResourceTracker, (VkFramebufferMixedSamplesCombinationNV*)(pCombinations + i));
+            }
+        }
+    }
+    VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return;
+}
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+VkResult VkEncoder::vkGetPhysicalDeviceSurfacePresentModes2EXT(
+    VkPhysicalDevice physicalDevice,
+    const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
+    uint32_t* pPresentModeCount,
+    VkPresentModeKHR* pPresentModes,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    VkPhysicalDeviceSurfaceInfo2KHR* local_pSurfaceInfo;
+    local_physicalDevice = physicalDevice;
+    local_pSurfaceInfo = nullptr;
+    if (pSurfaceInfo)
+    {
+        local_pSurfaceInfo = (VkPhysicalDeviceSurfaceInfo2KHR*)pool->alloc(sizeof(const VkPhysicalDeviceSurfaceInfo2KHR));
+        deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(pool, pSurfaceInfo, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
+    }
+    if (local_pSurfaceInfo)
+    {
+        transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(sResourceTracker, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPhysicalDeviceSurfaceInfo2KHR(sFeatureBits, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pPresentModeCount)
+        {
+            *countPtr += sizeof(uint32_t);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pPresentModes)
+        {
+            if ((pPresentModeCount) != nullptr)
+            {
+                *countPtr += (*(pPresentModeCount)) * sizeof(VkPresentModeKHR);
+            }
+        }
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceSurfacePresentModes2EXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceSurfacePresentModes2EXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceSurfacePresentModes2EXT = OP_vkGetPhysicalDeviceSurfacePresentModes2EXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceSurfacePresentModes2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceSurfacePresentModes2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pPresentModeCount;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pPresentModeCount)
+    {
+        memcpy(*streamPtrPtr, (uint32_t*)pPresentModeCount, sizeof(uint32_t));
+        *streamPtrPtr += sizeof(uint32_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pPresentModes;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pPresentModes)
+    {
+        memcpy(*streamPtrPtr, (VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR));
+        *streamPtrPtr += (*(pPresentModeCount)) * sizeof(VkPresentModeKHR);
+    }
+    // WARNING PTR CHECK
+    uint32_t* check_pPresentModeCount;
+    check_pPresentModeCount = (uint32_t*)(uintptr_t)stream->getBe64();
+    if (pPresentModeCount)
+    {
+        if (!(check_pPresentModeCount))
+        {
+            fprintf(stderr, "fatal: pPresentModeCount inconsistent between guest and host\n");
+        }
+        stream->read((uint32_t*)pPresentModeCount, sizeof(uint32_t));
+    }
+    // WARNING PTR CHECK
+    VkPresentModeKHR* check_pPresentModes;
+    check_pPresentModes = (VkPresentModeKHR*)(uintptr_t)stream->getBe64();
+    if (pPresentModes)
+    {
+        if (!(check_pPresentModes))
+        {
+            fprintf(stderr, "fatal: pPresentModes inconsistent between guest and host\n");
+        }
+        stream->read((VkPresentModeKHR*)pPresentModes, (*(pPresentModeCount)) * sizeof(VkPresentModeKHR));
+    }
+    VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return = (VkResult)0;
+    stream->read(&vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return;
+}
+
+VkResult VkEncoder::vkAcquireFullScreenExclusiveModeEXT(
+    VkDevice device,
+    VkSwapchainKHR swapchain,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSwapchainKHR local_swapchain;
+    local_device = device;
+    local_swapchain = swapchain;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkAcquireFullScreenExclusiveModeEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkAcquireFullScreenExclusiveModeEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkAcquireFullScreenExclusiveModeEXT = OP_vkAcquireFullScreenExclusiveModeEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkAcquireFullScreenExclusiveModeEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkAcquireFullScreenExclusiveModeEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    VkResult vkAcquireFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkAcquireFullScreenExclusiveModeEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkAcquireFullScreenExclusiveModeEXT_VkResult_return;
+}
+
+VkResult VkEncoder::vkReleaseFullScreenExclusiveModeEXT(
+    VkDevice device,
+    VkSwapchainKHR swapchain,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkSwapchainKHR local_swapchain;
+    local_device = device;
+    local_swapchain = swapchain;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+    }
+    uint32_t packetSize_vkReleaseFullScreenExclusiveModeEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkReleaseFullScreenExclusiveModeEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkReleaseFullScreenExclusiveModeEXT = OP_vkReleaseFullScreenExclusiveModeEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkReleaseFullScreenExclusiveModeEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkReleaseFullScreenExclusiveModeEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSwapchainKHR((*&local_swapchain));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    VkResult vkReleaseFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkReleaseFullScreenExclusiveModeEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkReleaseFullScreenExclusiveModeEXT_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetDeviceGroupSurfacePresentModes2EXT(
+    VkDevice device,
+    const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
+    VkDeviceGroupPresentModeFlagsKHR* pModes,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPhysicalDeviceSurfaceInfo2KHR* local_pSurfaceInfo;
+    local_device = device;
+    local_pSurfaceInfo = nullptr;
+    if (pSurfaceInfo)
+    {
+        local_pSurfaceInfo = (VkPhysicalDeviceSurfaceInfo2KHR*)pool->alloc(sizeof(const VkPhysicalDeviceSurfaceInfo2KHR));
+        deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(pool, pSurfaceInfo, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
+    }
+    if (local_pSurfaceInfo)
+    {
+        transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(sResourceTracker, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPhysicalDeviceSurfaceInfo2KHR(sFeatureBits, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pModes)
+        {
+            *countPtr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
+        }
+    }
+    uint32_t packetSize_vkGetDeviceGroupSurfacePresentModes2EXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceGroupSurfacePresentModes2EXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceGroupSurfacePresentModes2EXT = OP_vkGetDeviceGroupSurfacePresentModes2EXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceGroupSurfacePresentModes2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceGroupSurfacePresentModes2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkPhysicalDeviceSurfaceInfo2KHR(stream, (VkPhysicalDeviceSurfaceInfo2KHR*)(local_pSurfaceInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)pModes;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pModes)
+    {
+        memcpy(*streamPtrPtr, (VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
+        *streamPtrPtr += sizeof(VkDeviceGroupPresentModeFlagsKHR);
+    }
+    // WARNING PTR CHECK
+    VkDeviceGroupPresentModeFlagsKHR* check_pModes;
+    check_pModes = (VkDeviceGroupPresentModeFlagsKHR*)(uintptr_t)stream->getBe64();
+    if (pModes)
+    {
+        if (!(check_pModes))
+        {
+            fprintf(stderr, "fatal: pModes inconsistent between guest and host\n");
+        }
+        stream->read((VkDeviceGroupPresentModeFlagsKHR*)pModes, sizeof(VkDeviceGroupPresentModeFlagsKHR));
+    }
+    VkResult vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = (VkResult)0;
+    stream->read(&vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return;
+}
+
+#endif
+#ifdef VK_EXT_headless_surface
+VkResult VkEncoder::vkCreateHeadlessSurfaceEXT(
+    VkInstance instance,
+    const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkInstance local_instance;
+    VkHeadlessSurfaceCreateInfoEXT* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_instance = instance;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkHeadlessSurfaceCreateInfoEXT*)pool->alloc(sizeof(const VkHeadlessSurfaceCreateInfoEXT));
+        deepcopy_VkHeadlessSurfaceCreateInfoEXT(pool, pCreateInfo, (VkHeadlessSurfaceCreateInfoEXT*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkHeadlessSurfaceCreateInfoEXT(sResourceTracker, (VkHeadlessSurfaceCreateInfoEXT*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkHeadlessSurfaceCreateInfoEXT(sFeatureBits, (VkHeadlessSurfaceCreateInfoEXT*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateHeadlessSurfaceEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateHeadlessSurfaceEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateHeadlessSurfaceEXT = OP_vkCreateHeadlessSurfaceEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateHeadlessSurfaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateHeadlessSurfaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkHeadlessSurfaceCreateInfoEXT(stream, (VkHeadlessSurfaceCreateInfoEXT*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
+    VkResult vkCreateHeadlessSurfaceEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateHeadlessSurfaceEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateHeadlessSurfaceEXT_VkResult_return;
+}
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void VkEncoder::vkCmdSetLineStippleEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t lineStippleFactor,
+    uint16_t lineStipplePattern,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_lineStippleFactor;
+    uint16_t local_lineStipplePattern;
+    local_commandBuffer = commandBuffer;
+    local_lineStippleFactor = lineStippleFactor;
+    local_lineStipplePattern = lineStipplePattern;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint16_t);
+    }
+    uint32_t packetSize_vkCmdSetLineStippleEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetLineStippleEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetLineStippleEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetLineStippleEXT = OP_vkCmdSetLineStippleEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetLineStippleEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetLineStippleEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_lineStippleFactor, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint16_t*)&local_lineStipplePattern, sizeof(uint16_t));
+    *streamPtrPtr += sizeof(uint16_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+#endif
+#ifdef VK_EXT_host_query_reset
+void VkEncoder::vkResetQueryPoolEXT(
+    VkDevice device,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t queryCount,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkQueryPool local_queryPool;
+    uint32_t local_firstQuery;
+    uint32_t local_queryCount;
+    local_device = device;
+    local_queryPool = queryPool;
+    local_firstQuery = firstQuery;
+    local_queryCount = queryCount;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkResetQueryPoolEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkResetQueryPoolEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkResetQueryPoolEXT = OP_vkResetQueryPoolEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkResetQueryPoolEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkResetQueryPoolEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstQuery, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_queryCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_index_type_uint8
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void VkEncoder::vkCmdSetCullModeEXT(
+    VkCommandBuffer commandBuffer,
+    VkCullModeFlags cullMode,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCullModeFlags local_cullMode;
+    local_commandBuffer = commandBuffer;
+    local_cullMode = cullMode;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkCullModeFlags);
+    }
+    uint32_t packetSize_vkCmdSetCullModeEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetCullModeEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetCullModeEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetCullModeEXT = OP_vkCmdSetCullModeEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetCullModeEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetCullModeEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkCullModeFlags*)&local_cullMode, sizeof(VkCullModeFlags));
+    *streamPtrPtr += sizeof(VkCullModeFlags);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetFrontFaceEXT(
+    VkCommandBuffer commandBuffer,
+    VkFrontFace frontFace,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkFrontFace local_frontFace;
+    local_commandBuffer = commandBuffer;
+    local_frontFace = frontFace;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkFrontFace);
+    }
+    uint32_t packetSize_vkCmdSetFrontFaceEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetFrontFaceEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetFrontFaceEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetFrontFaceEXT = OP_vkCmdSetFrontFaceEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetFrontFaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetFrontFaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkFrontFace*)&local_frontFace, sizeof(VkFrontFace));
+    *streamPtrPtr += sizeof(VkFrontFace);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetPrimitiveTopologyEXT(
+    VkCommandBuffer commandBuffer,
+    VkPrimitiveTopology primitiveTopology,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkPrimitiveTopology local_primitiveTopology;
+    local_commandBuffer = commandBuffer;
+    local_primitiveTopology = primitiveTopology;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkPrimitiveTopology);
+    }
+    uint32_t packetSize_vkCmdSetPrimitiveTopologyEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetPrimitiveTopologyEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetPrimitiveTopologyEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetPrimitiveTopologyEXT = OP_vkCmdSetPrimitiveTopologyEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetPrimitiveTopologyEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetPrimitiveTopologyEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkPrimitiveTopology*)&local_primitiveTopology, sizeof(VkPrimitiveTopology));
+    *streamPtrPtr += sizeof(VkPrimitiveTopology);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetViewportWithCountEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t viewportCount,
+    const VkViewport* pViewports,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_viewportCount;
+    VkViewport* local_pViewports;
+    local_commandBuffer = commandBuffer;
+    local_viewportCount = viewportCount;
+    local_pViewports = nullptr;
+    if (pViewports)
+    {
+        local_pViewports = (VkViewport*)pool->alloc(((viewportCount)) * sizeof(const VkViewport));
+        for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+        {
+            deepcopy_VkViewport(pool, pViewports + i, (VkViewport*)(local_pViewports + i));
+        }
+    }
+    if (local_pViewports)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+        {
+            transform_tohost_VkViewport(sResourceTracker, (VkViewport*)(local_pViewports + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+        {
+            count_VkViewport(sFeatureBits, (VkViewport*)(local_pViewports + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkCmdSetViewportWithCountEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetViewportWithCountEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetViewportWithCountEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetViewportWithCountEXT = OP_vkCmdSetViewportWithCountEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetViewportWithCountEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetViewportWithCountEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_viewportCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((viewportCount)); ++i)
+    {
+        reservedmarshal_VkViewport(stream, (VkViewport*)(local_pViewports + i), streamPtrPtr);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetScissorWithCountEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t scissorCount,
+    const VkRect2D* pScissors,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_scissorCount;
+    VkRect2D* local_pScissors;
+    local_commandBuffer = commandBuffer;
+    local_scissorCount = scissorCount;
+    local_pScissors = nullptr;
+    if (pScissors)
+    {
+        local_pScissors = (VkRect2D*)pool->alloc(((scissorCount)) * sizeof(const VkRect2D));
+        for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
+        {
+            deepcopy_VkRect2D(pool, pScissors + i, (VkRect2D*)(local_pScissors + i));
+        }
+    }
+    if (local_pScissors)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
+        {
+            transform_tohost_VkRect2D(sResourceTracker, (VkRect2D*)(local_pScissors + i));
+        }
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
+        {
+            count_VkRect2D(sFeatureBits, (VkRect2D*)(local_pScissors + i), countPtr);
+        }
+    }
+    uint32_t packetSize_vkCmdSetScissorWithCountEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetScissorWithCountEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetScissorWithCountEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetScissorWithCountEXT = OP_vkCmdSetScissorWithCountEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetScissorWithCountEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetScissorWithCountEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_scissorCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((scissorCount)); ++i)
+    {
+        reservedmarshal_VkRect2D(stream, (VkRect2D*)(local_pScissors + i), streamPtrPtr);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBindVertexBuffers2EXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstBinding,
+    uint32_t bindingCount,
+    const VkBuffer* pBuffers,
+    const VkDeviceSize* pOffsets,
+    const VkDeviceSize* pSizes,
+    const VkDeviceSize* pStrides,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_firstBinding;
+    uint32_t local_bindingCount;
+    VkBuffer* local_pBuffers;
+    VkDeviceSize* local_pOffsets;
+    VkDeviceSize* local_pSizes;
+    VkDeviceSize* local_pStrides;
+    local_commandBuffer = commandBuffer;
+    local_firstBinding = firstBinding;
+    local_bindingCount = bindingCount;
+    // Avoiding deepcopy for pBuffers
+    local_pBuffers = (VkBuffer*)pBuffers;
+    // Avoiding deepcopy for pOffsets
+    local_pOffsets = (VkDeviceSize*)pOffsets;
+    // Avoiding deepcopy for pSizes
+    local_pSizes = (VkDeviceSize*)pSizes;
+    // Avoiding deepcopy for pStrides
+    local_pStrides = (VkDeviceSize*)pStrides;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        if (((bindingCount)))
+        {
+            *countPtr += ((bindingCount)) * 8;
+        }
+        *countPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pSizes)
+        {
+            *countPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pStrides)
+        {
+            *countPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+        }
+    }
+    uint32_t packetSize_vkCmdBindVertexBuffers2EXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBindVertexBuffers2EXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBindVertexBuffers2EXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBindVertexBuffers2EXT = OP_vkCmdBindVertexBuffers2EXT;
+    memcpy(streamPtr, &opcode_vkCmdBindVertexBuffers2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBindVertexBuffers2EXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstBinding, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_bindingCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    if (((bindingCount)))
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
+        for (uint32_t k = 0; k < ((bindingCount)); ++k)
+        {
+            uint64_t tmpval = get_host_u64_VkBuffer(local_pBuffers[k]);
+            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((bindingCount));
+    }
+    memcpy(*streamPtrPtr, (VkDeviceSize*)local_pOffsets, ((bindingCount)) * sizeof(VkDeviceSize));
+    *streamPtrPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pSizes;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pSizes)
+    {
+        memcpy(*streamPtrPtr, (VkDeviceSize*)local_pSizes, ((bindingCount)) * sizeof(VkDeviceSize));
+        *streamPtrPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pStrides;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pStrides)
+    {
+        memcpy(*streamPtrPtr, (VkDeviceSize*)local_pStrides, ((bindingCount)) * sizeof(VkDeviceSize));
+        *streamPtrPtr += ((bindingCount)) * sizeof(VkDeviceSize);
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetDepthTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthTestEnable,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBool32 local_depthTestEnable;
+    local_commandBuffer = commandBuffer;
+    local_depthTestEnable = depthTestEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetDepthTestEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetDepthTestEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetDepthTestEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetDepthTestEnableEXT = OP_vkCmdSetDepthTestEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetDepthTestEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetDepthTestEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkBool32*)&local_depthTestEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetDepthWriteEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthWriteEnable,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBool32 local_depthWriteEnable;
+    local_commandBuffer = commandBuffer;
+    local_depthWriteEnable = depthWriteEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetDepthWriteEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetDepthWriteEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetDepthWriteEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetDepthWriteEnableEXT = OP_vkCmdSetDepthWriteEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetDepthWriteEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetDepthWriteEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkBool32*)&local_depthWriteEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetDepthCompareOpEXT(
+    VkCommandBuffer commandBuffer,
+    VkCompareOp depthCompareOp,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCompareOp local_depthCompareOp;
+    local_commandBuffer = commandBuffer;
+    local_depthCompareOp = depthCompareOp;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkCompareOp);
+    }
+    uint32_t packetSize_vkCmdSetDepthCompareOpEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetDepthCompareOpEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetDepthCompareOpEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetDepthCompareOpEXT = OP_vkCmdSetDepthCompareOpEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetDepthCompareOpEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetDepthCompareOpEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkCompareOp*)&local_depthCompareOp, sizeof(VkCompareOp));
+    *streamPtrPtr += sizeof(VkCompareOp);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetDepthBoundsTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthBoundsTestEnable,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBool32 local_depthBoundsTestEnable;
+    local_commandBuffer = commandBuffer;
+    local_depthBoundsTestEnable = depthBoundsTestEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetDepthBoundsTestEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetDepthBoundsTestEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetDepthBoundsTestEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetDepthBoundsTestEnableEXT = OP_vkCmdSetDepthBoundsTestEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetDepthBoundsTestEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetDepthBoundsTestEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkBool32*)&local_depthBoundsTestEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetStencilTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 stencilTestEnable,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBool32 local_stencilTestEnable;
+    local_commandBuffer = commandBuffer;
+    local_stencilTestEnable = stencilTestEnable;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+    }
+    uint32_t packetSize_vkCmdSetStencilTestEnableEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetStencilTestEnableEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetStencilTestEnableEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetStencilTestEnableEXT = OP_vkCmdSetStencilTestEnableEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetStencilTestEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetStencilTestEnableEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkBool32*)&local_stencilTestEnable, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdSetStencilOpEXT(
+    VkCommandBuffer commandBuffer,
+    VkStencilFaceFlags faceMask,
+    VkStencilOp failOp,
+    VkStencilOp passOp,
+    VkStencilOp depthFailOp,
+    VkCompareOp compareOp,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkStencilFaceFlags local_faceMask;
+    VkStencilOp local_failOp;
+    VkStencilOp local_passOp;
+    VkStencilOp local_depthFailOp;
+    VkCompareOp local_compareOp;
+    local_commandBuffer = commandBuffer;
+    local_faceMask = faceMask;
+    local_failOp = failOp;
+    local_passOp = passOp;
+    local_depthFailOp = depthFailOp;
+    local_compareOp = compareOp;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkStencilFaceFlags);
+        *countPtr += sizeof(VkStencilOp);
+        *countPtr += sizeof(VkStencilOp);
+        *countPtr += sizeof(VkStencilOp);
+        *countPtr += sizeof(VkCompareOp);
+    }
+    uint32_t packetSize_vkCmdSetStencilOpEXT = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetStencilOpEXT -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetStencilOpEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetStencilOpEXT = OP_vkCmdSetStencilOpEXT;
+    memcpy(streamPtr, &opcode_vkCmdSetStencilOpEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetStencilOpEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkStencilFaceFlags*)&local_faceMask, sizeof(VkStencilFaceFlags));
+    *streamPtrPtr += sizeof(VkStencilFaceFlags);
+    memcpy(*streamPtrPtr, (VkStencilOp*)&local_failOp, sizeof(VkStencilOp));
+    *streamPtrPtr += sizeof(VkStencilOp);
+    memcpy(*streamPtrPtr, (VkStencilOp*)&local_passOp, sizeof(VkStencilOp));
+    *streamPtrPtr += sizeof(VkStencilOp);
+    memcpy(*streamPtrPtr, (VkStencilOp*)&local_depthFailOp, sizeof(VkStencilOp));
+    *streamPtrPtr += sizeof(VkStencilOp);
+    memcpy(*streamPtrPtr, (VkCompareOp*)&local_compareOp, sizeof(VkCompareOp));
+    *streamPtrPtr += sizeof(VkCompareOp);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+#endif
+#ifdef VK_NV_device_generated_commands
+void VkEncoder::vkGetGeneratedCommandsMemoryRequirementsNV(
+    VkDevice device,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2* pMemoryRequirements,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkGeneratedCommandsMemoryRequirementsInfoNV* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkGeneratedCommandsMemoryRequirementsInfoNV*)pool->alloc(sizeof(const VkGeneratedCommandsMemoryRequirementsInfoNV));
+        deepcopy_VkGeneratedCommandsMemoryRequirementsInfoNV(pool, pInfo, (VkGeneratedCommandsMemoryRequirementsInfoNV*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkGeneratedCommandsMemoryRequirementsInfoNV(sResourceTracker, (VkGeneratedCommandsMemoryRequirementsInfoNV*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkGeneratedCommandsMemoryRequirementsInfoNV(sFeatureBits, (VkGeneratedCommandsMemoryRequirementsInfoNV*)(local_pInfo), countPtr);
+        count_VkMemoryRequirements2(sFeatureBits, (VkMemoryRequirements2*)(pMemoryRequirements), countPtr);
+    }
+    uint32_t packetSize_vkGetGeneratedCommandsMemoryRequirementsNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetGeneratedCommandsMemoryRequirementsNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetGeneratedCommandsMemoryRequirementsNV = OP_vkGetGeneratedCommandsMemoryRequirementsNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetGeneratedCommandsMemoryRequirementsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetGeneratedCommandsMemoryRequirementsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkGeneratedCommandsMemoryRequirementsInfoNV(stream, (VkGeneratedCommandsMemoryRequirementsInfoNV*)(local_pInfo), streamPtrPtr);
+    reservedmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements), streamPtrPtr);
+    unmarshal_VkMemoryRequirements2(stream, (VkMemoryRequirements2*)(pMemoryRequirements));
+    if (pMemoryRequirements)
+    {
+        transform_fromhost_VkMemoryRequirements2(sResourceTracker, (VkMemoryRequirements2*)(pMemoryRequirements));
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdPreprocessGeneratedCommandsNV(
+    VkCommandBuffer commandBuffer,
+    const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkGeneratedCommandsInfoNV* local_pGeneratedCommandsInfo;
+    local_commandBuffer = commandBuffer;
+    local_pGeneratedCommandsInfo = nullptr;
+    if (pGeneratedCommandsInfo)
+    {
+        local_pGeneratedCommandsInfo = (VkGeneratedCommandsInfoNV*)pool->alloc(sizeof(const VkGeneratedCommandsInfoNV));
+        deepcopy_VkGeneratedCommandsInfoNV(pool, pGeneratedCommandsInfo, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo));
+    }
+    if (local_pGeneratedCommandsInfo)
+    {
+        transform_tohost_VkGeneratedCommandsInfoNV(sResourceTracker, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkGeneratedCommandsInfoNV(sFeatureBits, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdPreprocessGeneratedCommandsNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdPreprocessGeneratedCommandsNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdPreprocessGeneratedCommandsNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdPreprocessGeneratedCommandsNV = OP_vkCmdPreprocessGeneratedCommandsNV;
+    memcpy(streamPtr, &opcode_vkCmdPreprocessGeneratedCommandsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdPreprocessGeneratedCommandsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkGeneratedCommandsInfoNV(stream, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdExecuteGeneratedCommandsNV(
+    VkCommandBuffer commandBuffer,
+    VkBool32 isPreprocessed,
+    const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkBool32 local_isPreprocessed;
+    VkGeneratedCommandsInfoNV* local_pGeneratedCommandsInfo;
+    local_commandBuffer = commandBuffer;
+    local_isPreprocessed = isPreprocessed;
+    local_pGeneratedCommandsInfo = nullptr;
+    if (pGeneratedCommandsInfo)
+    {
+        local_pGeneratedCommandsInfo = (VkGeneratedCommandsInfoNV*)pool->alloc(sizeof(const VkGeneratedCommandsInfoNV));
+        deepcopy_VkGeneratedCommandsInfoNV(pool, pGeneratedCommandsInfo, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo));
+    }
+    if (local_pGeneratedCommandsInfo)
+    {
+        transform_tohost_VkGeneratedCommandsInfoNV(sResourceTracker, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkBool32);
+        count_VkGeneratedCommandsInfoNV(sFeatureBits, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdExecuteGeneratedCommandsNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdExecuteGeneratedCommandsNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdExecuteGeneratedCommandsNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdExecuteGeneratedCommandsNV = OP_vkCmdExecuteGeneratedCommandsNV;
+    memcpy(streamPtr, &opcode_vkCmdExecuteGeneratedCommandsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdExecuteGeneratedCommandsNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkBool32*)&local_isPreprocessed, sizeof(VkBool32));
+    *streamPtrPtr += sizeof(VkBool32);
+    reservedmarshal_VkGeneratedCommandsInfoNV(stream, (VkGeneratedCommandsInfoNV*)(local_pGeneratedCommandsInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBindPipelineShaderGroupNV(
+    VkCommandBuffer commandBuffer,
+    VkPipelineBindPoint pipelineBindPoint,
+    VkPipeline pipeline,
+    uint32_t groupIndex,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkPipelineBindPoint local_pipelineBindPoint;
+    VkPipeline local_pipeline;
+    uint32_t local_groupIndex;
+    local_commandBuffer = commandBuffer;
+    local_pipelineBindPoint = pipelineBindPoint;
+    local_pipeline = pipeline;
+    local_groupIndex = groupIndex;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkPipelineBindPoint);
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdBindPipelineShaderGroupNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBindPipelineShaderGroupNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBindPipelineShaderGroupNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBindPipelineShaderGroupNV = OP_vkCmdBindPipelineShaderGroupNV;
+    memcpy(streamPtr, &opcode_vkCmdBindPipelineShaderGroupNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBindPipelineShaderGroupNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkPipelineBindPoint*)&local_pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    *streamPtrPtr += sizeof(VkPipelineBindPoint);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_groupIndex, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkCreateIndirectCommandsLayoutNV(
+    VkDevice device,
+    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkIndirectCommandsLayoutNV* pIndirectCommandsLayout,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkIndirectCommandsLayoutCreateInfoNV* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkIndirectCommandsLayoutCreateInfoNV*)pool->alloc(sizeof(const VkIndirectCommandsLayoutCreateInfoNV));
+        deepcopy_VkIndirectCommandsLayoutCreateInfoNV(pool, pCreateInfo, (VkIndirectCommandsLayoutCreateInfoNV*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkIndirectCommandsLayoutCreateInfoNV(sResourceTracker, (VkIndirectCommandsLayoutCreateInfoNV*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkIndirectCommandsLayoutCreateInfoNV(sFeatureBits, (VkIndirectCommandsLayoutCreateInfoNV*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateIndirectCommandsLayoutNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateIndirectCommandsLayoutNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateIndirectCommandsLayoutNV = OP_vkCreateIndirectCommandsLayoutNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateIndirectCommandsLayoutNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateIndirectCommandsLayoutNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkIndirectCommandsLayoutCreateInfoNV(stream, (VkIndirectCommandsLayoutCreateInfoNV*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pIndirectCommandsLayout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    stream->setHandleMapping(sResourceTracker->createMapping());
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNV(&cgen_var_3, (VkIndirectCommandsLayoutNV*)pIndirectCommandsLayout, 1);
+    stream->unsetHandleMapping();
+    VkResult vkCreateIndirectCommandsLayoutNV_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateIndirectCommandsLayoutNV_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateIndirectCommandsLayoutNV_VkResult_return;
+}
+
+void VkEncoder::vkDestroyIndirectCommandsLayoutNV(
+    VkDevice device,
+    VkIndirectCommandsLayoutNV indirectCommandsLayout,
+    const VkAllocationCallbacks* pAllocator,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkIndirectCommandsLayoutNV local_indirectCommandsLayout;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_indirectCommandsLayout = indirectCommandsLayout;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyIndirectCommandsLayoutNV = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyIndirectCommandsLayoutNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyIndirectCommandsLayoutNV = OP_vkDestroyIndirectCommandsLayoutNV;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyIndirectCommandsLayoutNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyIndirectCommandsLayoutNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkIndirectCommandsLayoutNV((*&local_indirectCommandsLayout));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    sResourceTracker->destroyMapping()->mapHandles_VkIndirectCommandsLayoutNV((VkIndirectCommandsLayoutNV*)&indirectCommandsLayout);
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+#endif
+#ifdef VK_QCOM_render_pass_transform
+#endif
+#ifdef VK_EXT_device_memory_report
+#endif
+#ifdef VK_EXT_robustness2
+#endif
+#ifdef VK_EXT_custom_border_color
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+VkResult VkEncoder::vkCreatePrivateDataSlotEXT(
+    VkDevice device,
+    const VkPrivateDataSlotCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkPrivateDataSlotEXT* pPrivateDataSlot,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPrivateDataSlotCreateInfoEXT* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkPrivateDataSlotCreateInfoEXT*)pool->alloc(sizeof(const VkPrivateDataSlotCreateInfoEXT));
+        deepcopy_VkPrivateDataSlotCreateInfoEXT(pool, pCreateInfo, (VkPrivateDataSlotCreateInfoEXT*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkPrivateDataSlotCreateInfoEXT(sResourceTracker, (VkPrivateDataSlotCreateInfoEXT*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkPrivateDataSlotCreateInfoEXT(sFeatureBits, (VkPrivateDataSlotCreateInfoEXT*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreatePrivateDataSlotEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreatePrivateDataSlotEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreatePrivateDataSlotEXT = OP_vkCreatePrivateDataSlotEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreatePrivateDataSlotEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreatePrivateDataSlotEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkPrivateDataSlotCreateInfoEXT(stream, (VkPrivateDataSlotCreateInfoEXT*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    uint64_t cgen_var_2 = (uint64_t)(*pPrivateDataSlot);
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    (*pPrivateDataSlot) = (VkPrivateDataSlotEXT)stream->getBe64();
+    VkResult vkCreatePrivateDataSlotEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkCreatePrivateDataSlotEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreatePrivateDataSlotEXT_VkResult_return;
+}
+
+void VkEncoder::vkDestroyPrivateDataSlotEXT(
+    VkDevice device,
+    VkPrivateDataSlotEXT privateDataSlot,
+    const VkAllocationCallbacks* pAllocator,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPrivateDataSlotEXT local_privateDataSlot;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_privateDataSlot = privateDataSlot;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyPrivateDataSlotEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyPrivateDataSlotEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyPrivateDataSlotEXT = OP_vkDestroyPrivateDataSlotEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyPrivateDataSlotEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyPrivateDataSlotEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_privateDataSlot;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkSetPrivateDataEXT(
+    VkDevice device,
+    VkObjectType objectType,
+    uint64_t objectHandle,
+    VkPrivateDataSlotEXT privateDataSlot,
+    uint64_t data,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkObjectType local_objectType;
+    uint64_t local_objectHandle;
+    VkPrivateDataSlotEXT local_privateDataSlot;
+    uint64_t local_data;
+    local_device = device;
+    local_objectType = objectType;
+    local_objectHandle = objectHandle;
+    local_privateDataSlot = privateDataSlot;
+    local_data = data;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkObjectType);
+        *countPtr += sizeof(uint64_t);
+        *countPtr += 8;
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkSetPrivateDataEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkSetPrivateDataEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkSetPrivateDataEXT = OP_vkSetPrivateDataEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkSetPrivateDataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkSetPrivateDataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkObjectType*)&local_objectType, sizeof(VkObjectType));
+    *streamPtrPtr += sizeof(VkObjectType);
+    memcpy(*streamPtrPtr, (uint64_t*)&local_objectHandle, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    uint64_t cgen_var_1 = (uint64_t)local_privateDataSlot;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (uint64_t*)&local_data, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    VkResult vkSetPrivateDataEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkSetPrivateDataEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkSetPrivateDataEXT_VkResult_return;
+}
+
+void VkEncoder::vkGetPrivateDataEXT(
+    VkDevice device,
+    VkObjectType objectType,
+    uint64_t objectHandle,
+    VkPrivateDataSlotEXT privateDataSlot,
+    uint64_t* pData,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkObjectType local_objectType;
+    uint64_t local_objectHandle;
+    VkPrivateDataSlotEXT local_privateDataSlot;
+    local_device = device;
+    local_objectType = objectType;
+    local_objectHandle = objectHandle;
+    local_privateDataSlot = privateDataSlot;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkObjectType);
+        *countPtr += sizeof(uint64_t);
+        *countPtr += 8;
+        *countPtr += sizeof(uint64_t);
+    }
+    uint32_t packetSize_vkGetPrivateDataEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPrivateDataEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPrivateDataEXT = OP_vkGetPrivateDataEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPrivateDataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPrivateDataEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkObjectType*)&local_objectType, sizeof(VkObjectType));
+    *streamPtrPtr += sizeof(VkObjectType);
+    memcpy(*streamPtrPtr, (uint64_t*)&local_objectHandle, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    uint64_t cgen_var_1 = (uint64_t)local_privateDataSlot;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (uint64_t*)pData, sizeof(uint64_t));
+    *streamPtrPtr += sizeof(uint64_t);
+    stream->read((uint64_t*)pData, sizeof(uint64_t));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+#endif
+#ifdef VK_NV_device_diagnostics_config
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void VkEncoder::vkCmdSetFragmentShadingRateEnumNV(
+    VkCommandBuffer commandBuffer,
+    VkFragmentShadingRateNV shadingRate,
+    const VkFragmentShadingRateCombinerOpKHR combinerOps[2],
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkFragmentShadingRateNV local_shadingRate;
+    VkFragmentShadingRateCombinerOpKHR local_combinerOps[2];
+    local_commandBuffer = commandBuffer;
+    local_shadingRate = shadingRate;
+    memcpy(local_combinerOps, combinerOps, 2 * sizeof(const VkFragmentShadingRateCombinerOpKHR));
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkFragmentShadingRateNV);
+        *countPtr += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+    }
+    uint32_t packetSize_vkCmdSetFragmentShadingRateEnumNV = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetFragmentShadingRateEnumNV -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetFragmentShadingRateEnumNV);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetFragmentShadingRateEnumNV = OP_vkCmdSetFragmentShadingRateEnumNV;
+    memcpy(streamPtr, &opcode_vkCmdSetFragmentShadingRateEnumNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetFragmentShadingRateEnumNV, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (VkFragmentShadingRateNV*)&local_shadingRate, sizeof(VkFragmentShadingRateNV));
+    *streamPtrPtr += sizeof(VkFragmentShadingRateNV);
+    memcpy(*streamPtrPtr, (VkFragmentShadingRateCombinerOpKHR*)local_combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+    *streamPtrPtr += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+#endif
+#ifdef VK_EXT_image_robustness
+#endif
+#ifdef VK_EXT_4444_formats
+#endif
+#ifdef VK_EXT_directfb_surface
+VkResult VkEncoder::vkCreateDirectFBSurfaceEXT(
+    VkInstance instance,
+    const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkInstance local_instance;
+    VkDirectFBSurfaceCreateInfoEXT* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_instance = instance;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkDirectFBSurfaceCreateInfoEXT*)pool->alloc(sizeof(const VkDirectFBSurfaceCreateInfoEXT));
+        deepcopy_VkDirectFBSurfaceCreateInfoEXT(pool, pCreateInfo, (VkDirectFBSurfaceCreateInfoEXT*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkDirectFBSurfaceCreateInfoEXT(sResourceTracker, (VkDirectFBSurfaceCreateInfoEXT*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkDirectFBSurfaceCreateInfoEXT(sFeatureBits, (VkDirectFBSurfaceCreateInfoEXT*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateDirectFBSurfaceEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateDirectFBSurfaceEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateDirectFBSurfaceEXT = OP_vkCreateDirectFBSurfaceEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateDirectFBSurfaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateDirectFBSurfaceEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkInstance((*&local_instance));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkDirectFBSurfaceCreateInfoEXT(stream, (VkDirectFBSurfaceCreateInfoEXT*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pSurface));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_3, (VkSurfaceKHR*)pSurface, 1);
+    VkResult vkCreateDirectFBSurfaceEXT_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateDirectFBSurfaceEXT_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateDirectFBSurfaceEXT_VkResult_return;
+}
+
+VkBool32 VkEncoder::vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
+    VkPhysicalDevice physicalDevice,
+    uint32_t queueFamilyIndex,
+    IDirectFB* dfb,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkPhysicalDevice local_physicalDevice;
+    uint32_t local_queueFamilyIndex;
+    local_physicalDevice = physicalDevice;
+    local_queueFamilyIndex = queueFamilyIndex;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(IDirectFB);
+    }
+    uint32_t packetSize_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetPhysicalDeviceDirectFBPresentationSupportEXT);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetPhysicalDeviceDirectFBPresentationSupportEXT = OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetPhysicalDeviceDirectFBPresentationSupportEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetPhysicalDeviceDirectFBPresentationSupportEXT, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_queueFamilyIndex, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (IDirectFB*)dfb, sizeof(IDirectFB));
+    *streamPtrPtr += sizeof(IDirectFB);
+    stream->read((IDirectFB*)dfb, sizeof(IDirectFB));
+    VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return = (VkBool32)0;
+    stream->read(&vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return, sizeof(VkBool32));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return;
+}
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+VkResult VkEncoder::vkMapMemoryIntoAddressSpaceGOOGLE(
+    VkDevice device,
+    VkDeviceMemory memory,
+    uint64_t* pAddress,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    sResourceTracker->on_vkMapMemoryIntoAddressSpaceGOOGLE_pre(this, VK_SUCCESS, device, memory, pAddress);
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeviceMemory local_memory;
+    local_device = device;
+    local_memory = memory;
+    sResourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&local_memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (pAddress)
+        {
+            *countPtr += sizeof(uint64_t);
+        }
+    }
+    uint32_t packetSize_vkMapMemoryIntoAddressSpaceGOOGLE = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkMapMemoryIntoAddressSpaceGOOGLE);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkMapMemoryIntoAddressSpaceGOOGLE = OP_vkMapMemoryIntoAddressSpaceGOOGLE;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkMapMemoryIntoAddressSpaceGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pAddress;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (pAddress)
+    {
+        memcpy(*streamPtrPtr, (uint64_t*)pAddress, sizeof(uint64_t));
+        *streamPtrPtr += sizeof(uint64_t);
+    }
+    // WARNING PTR CHECK
+    uint64_t* check_pAddress;
+    check_pAddress = (uint64_t*)(uintptr_t)stream->getBe64();
+    if (pAddress)
+    {
+        if (!(check_pAddress))
+        {
+            fprintf(stderr, "fatal: pAddress inconsistent between guest and host\n");
+        }
+        stream->read((uint64_t*)pAddress, sizeof(uint64_t));
+    }
+    VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
+    stream->read(&vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, sizeof(VkResult));
+    sResourceTracker->on_vkMapMemoryIntoAddressSpaceGOOGLE(this, vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return, device, memory, pAddress);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
+}
+
 void VkEncoder::vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
     VkDevice device,
     VkDescriptorSet descriptorSet,
@@ -24751,11 +33189,11 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1330;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1331;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1332;
+        uint64_t cgen_var_2;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -24814,17 +33252,17 @@
     memcpy(streamPtr, &opcode_vkUpdateDescriptorSetWithTemplateSizedGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkUpdateDescriptorSetWithTemplateSizedGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1334;
-    *&cgen_var_1334 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1334, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1335;
-    *&cgen_var_1335 = get_host_u64_VkDescriptorSet((*&local_descriptorSet));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1335, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorSet((*&local_descriptorSet));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1336;
-    *&cgen_var_1336 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1336, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkDescriptorUpdateTemplate((*&local_descriptorUpdateTemplate));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_imageInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -24833,8 +33271,8 @@
     memcpy(*streamPtrPtr, (uint32_t*)&local_bufferViewCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1337 = (uint64_t)(uintptr_t)local_pImageInfoEntryIndices;
-    memcpy((*streamPtrPtr), &cgen_var_1337, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)local_pImageInfoEntryIndices;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pImageInfoEntryIndices)
@@ -24843,8 +33281,8 @@
         *streamPtrPtr += ((imageInfoCount)) * sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1338 = (uint64_t)(uintptr_t)local_pBufferInfoEntryIndices;
-    memcpy((*streamPtrPtr), &cgen_var_1338, 8);
+    uint64_t cgen_var_4 = (uint64_t)(uintptr_t)local_pBufferInfoEntryIndices;
+    memcpy((*streamPtrPtr), &cgen_var_4, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pBufferInfoEntryIndices)
@@ -24853,8 +33291,8 @@
         *streamPtrPtr += ((bufferInfoCount)) * sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1339 = (uint64_t)(uintptr_t)local_pBufferViewEntryIndices;
-    memcpy((*streamPtrPtr), &cgen_var_1339, 8);
+    uint64_t cgen_var_5 = (uint64_t)(uintptr_t)local_pBufferViewEntryIndices;
+    memcpy((*streamPtrPtr), &cgen_var_5, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pBufferViewEntryIndices)
@@ -24863,8 +33301,8 @@
         *streamPtrPtr += ((bufferViewCount)) * sizeof(uint32_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1340 = (uint64_t)(uintptr_t)local_pImageInfos;
-    memcpy((*streamPtrPtr), &cgen_var_1340, 8);
+    uint64_t cgen_var_6 = (uint64_t)(uintptr_t)local_pImageInfos;
+    memcpy((*streamPtrPtr), &cgen_var_6, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pImageInfos)
@@ -24875,8 +33313,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1341 = (uint64_t)(uintptr_t)local_pBufferInfos;
-    memcpy((*streamPtrPtr), &cgen_var_1341, 8);
+    uint64_t cgen_var_7 = (uint64_t)(uintptr_t)local_pBufferInfos;
+    memcpy((*streamPtrPtr), &cgen_var_7, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pBufferInfos)
@@ -24887,19 +33325,19 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1342 = (uint64_t)(uintptr_t)local_pBufferViews;
-    memcpy((*streamPtrPtr), &cgen_var_1342, 8);
+    uint64_t cgen_var_8 = (uint64_t)(uintptr_t)local_pBufferViews;
+    memcpy((*streamPtrPtr), &cgen_var_8, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pBufferViews)
     {
         if (((bufferViewCount)))
         {
-            uint8_t* cgen_var_1343_ptr = (uint8_t*)(*streamPtrPtr);
+            uint8_t* cgen_var_8_0_ptr = (uint8_t*)(*streamPtrPtr);
             for (uint32_t k = 0; k < ((bufferViewCount)); ++k)
             {
                 uint64_t tmpval = get_host_u64_VkBufferView(local_pBufferViews[k]);
-                memcpy(cgen_var_1343_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                memcpy(cgen_var_8_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
             }
             *streamPtrPtr += 8 * ((bufferViewCount));
         }
@@ -24914,8 +33352,6 @@
     if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
 }
 
-#endif
-#ifdef VK_GOOGLE_async_command_buffers
 void VkEncoder::vkBeginCommandBufferAsyncGOOGLE(
     VkCommandBuffer commandBuffer,
     const VkCommandBufferBeginInfo* pBeginInfo,
@@ -24942,7 +33378,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1344;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkCommandBufferBeginInfo(sFeatureBits, (VkCommandBufferBeginInfo*)(local_pBeginInfo), countPtr);
     }
@@ -24955,9 +33391,9 @@
     memcpy(streamPtr, &packetSize_vkBeginCommandBufferAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1345;
-        *&cgen_var_1345 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1345, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     reservedmarshal_VkCommandBufferBeginInfo(stream, (VkCommandBufferBeginInfo*)(local_pBeginInfo), streamPtrPtr);
@@ -24984,7 +33420,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1346;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkEndCommandBufferAsyncGOOGLE = 4 + 4 + count;
@@ -24996,9 +33432,9 @@
     memcpy(streamPtr, &packetSize_vkEndCommandBufferAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1347;
-        *&cgen_var_1347 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1347, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     stream->flush();
@@ -25028,7 +33464,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1348;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkCommandBufferResetFlags);
     }
@@ -25041,9 +33477,9 @@
     memcpy(streamPtr, &packetSize_vkResetCommandBufferAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1349;
-        *&cgen_var_1349 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1349, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (VkCommandBufferResetFlags*)&local_flags, sizeof(VkCommandBufferResetFlags));
@@ -25077,7 +33513,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1350;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -25091,9 +33527,9 @@
     memcpy(streamPtr, &packetSize_vkCommandBufferHostSyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (!queueSubmitWithCommandsEnabled)
     {
-        uint64_t cgen_var_1351;
-        *&cgen_var_1351 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
-        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1351, 1 * 8);
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
         *streamPtrPtr += 1 * 8;
     }
     memcpy(*streamPtrPtr, (uint32_t*)&local_needHostSync, sizeof(uint32_t));
@@ -25109,8 +33545,6 @@
     if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
 }
 
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
 VkResult VkEncoder::vkCreateImageWithRequirementsGOOGLE(
     VkDevice device,
     const VkImageCreateInfo* pCreateInfo,
@@ -25153,7 +33587,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1352;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkImageCreateInfo(sFeatureBits, (VkImageCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -25162,7 +33596,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1353;
+        uint64_t cgen_var_1;
         *countPtr += 8;
         count_VkMemoryRequirements(sFeatureBits, (VkMemoryRequirements*)(pMemoryRequirements), countPtr);
     }
@@ -25174,14 +33608,14 @@
     memcpy(streamPtr, &opcode_vkCreateImageWithRequirementsGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateImageWithRequirementsGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1354;
-    *&cgen_var_1354 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1354, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkImageCreateInfo(stream, (VkImageCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1355 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1355, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -25189,16 +33623,16 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1356;
-    *&cgen_var_1356 = (uint64_t)((*pImage));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1356, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pImage));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     reservedmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements), streamPtrPtr);
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1357;
-    stream->read((uint64_t*)&cgen_var_1357, 8);
-    stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1357, (VkImage*)pImage, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_3, (VkImage*)pImage, 1);
     stream->unsetHandleMapping();
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
     if (pMemoryRequirements)
@@ -25258,7 +33692,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1358;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         count_VkBufferCreateInfo(sFeatureBits, (VkBufferCreateInfo*)(local_pCreateInfo), countPtr);
         // WARNING PTR CHECK
@@ -25267,7 +33701,7 @@
         {
             count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
         }
-        uint64_t cgen_var_1359;
+        uint64_t cgen_var_1;
         *countPtr += 8;
         count_VkMemoryRequirements(sFeatureBits, (VkMemoryRequirements*)(pMemoryRequirements), countPtr);
     }
@@ -25279,14 +33713,14 @@
     memcpy(streamPtr, &opcode_vkCreateBufferWithRequirementsGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkCreateBufferWithRequirementsGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1360;
-    *&cgen_var_1360 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1360, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     reservedmarshal_VkBufferCreateInfo(stream, (VkBufferCreateInfo*)(local_pCreateInfo), streamPtrPtr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_1361 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1361, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -25294,16 +33728,16 @@
         reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
     }
     /* is handle, possibly out */;
-    uint64_t cgen_var_1362;
-    *&cgen_var_1362 = (uint64_t)((*pBuffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1362, 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pBuffer));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
     *streamPtrPtr += 8;
     /* is handle, possibly out */;
     reservedmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements), streamPtrPtr);
     stream->setHandleMapping(sResourceTracker->createMapping());
-    uint64_t cgen_var_1363;
-    stream->read((uint64_t*)&cgen_var_1363, 8);
-    stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1363, (VkBuffer*)pBuffer, 1);
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_3, (VkBuffer*)pBuffer, 1);
     stream->unsetHandleMapping();
     unmarshal_VkMemoryRequirements(stream, (VkMemoryRequirements*)(pMemoryRequirements));
     if (pMemoryRequirements)
@@ -25322,8 +33756,6 @@
     return vkCreateBufferWithRequirementsGOOGLE_VkResult_return;
 }
 
-#endif
-#ifdef VK_GOOGLE_address_space_info
 VkResult VkEncoder::vkGetMemoryHostAddressInfoGOOGLE(
     VkDevice device,
     VkDeviceMemory memory,
@@ -25345,9 +33777,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1364;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1365;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -25376,17 +33808,17 @@
     memcpy(streamPtr, &opcode_vkGetMemoryHostAddressInfoGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetMemoryHostAddressInfoGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1366;
-    *&cgen_var_1366 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1366, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1367;
-    *&cgen_var_1367 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1367, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1368 = (uint64_t)(uintptr_t)pAddress;
-    memcpy((*streamPtrPtr), &cgen_var_1368, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)pAddress;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pAddress)
@@ -25395,8 +33827,8 @@
         *streamPtrPtr += sizeof(uint64_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1369 = (uint64_t)(uintptr_t)pSize;
-    memcpy((*streamPtrPtr), &cgen_var_1369, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)pSize;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pSize)
@@ -25405,8 +33837,8 @@
         *streamPtrPtr += sizeof(uint64_t);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_1370 = (uint64_t)(uintptr_t)pHostmemId;
-    memcpy((*streamPtrPtr), &cgen_var_1370, 8);
+    uint64_t cgen_var_4 = (uint64_t)(uintptr_t)pHostmemId;
+    memcpy((*streamPtrPtr), &cgen_var_4, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (pHostmemId)
@@ -25459,8 +33891,6 @@
     return vkGetMemoryHostAddressInfoGOOGLE_VkResult_return;
 }
 
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
 VkResult VkEncoder::vkFreeMemorySyncGOOGLE(
     VkDevice device,
     VkDeviceMemory memory,
@@ -25488,9 +33918,9 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1374;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
-        uint64_t cgen_var_1375;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
         // WARNING PTR CHECK
         *countPtr += 8;
@@ -25507,17 +33937,17 @@
     memcpy(streamPtr, &opcode_vkFreeMemorySyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkFreeMemorySyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1376;
-    *&cgen_var_1376 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1376, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
-    uint64_t cgen_var_1377;
-    *&cgen_var_1377 = get_host_u64_VkDeviceMemory((*&local_memory));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1377, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&local_memory));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_1378 = (uint64_t)(uintptr_t)local_pAllocator;
-    memcpy((*streamPtrPtr), &cgen_var_1378, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
     *streamPtrPtr += 8;
     if (local_pAllocator)
@@ -25537,8 +33967,6 @@
     return vkFreeMemorySyncGOOGLE_VkResult_return;
 }
 
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
 void VkEncoder::vkQueueHostSyncGOOGLE(
     VkQueue queue,
     uint32_t needHostSync,
@@ -25559,7 +33987,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1379;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         *countPtr += sizeof(uint32_t);
@@ -25572,9 +34000,9 @@
     memcpy(streamPtr, &opcode_vkQueueHostSyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueHostSyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1380;
-    *&cgen_var_1380 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1380, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_needHostSync, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -25628,14 +34056,14 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1381;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((submitCount)); ++i)
         {
             count_VkSubmitInfo(sFeatureBits, (VkSubmitInfo*)(local_pSubmits + i), countPtr);
         }
-        uint64_t cgen_var_1382;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkQueueSubmitAsyncGOOGLE = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -25646,9 +34074,9 @@
     memcpy(streamPtr, &opcode_vkQueueSubmitAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueSubmitAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1383;
-    *&cgen_var_1383 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1383, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_submitCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -25656,9 +34084,9 @@
     {
         reservedmarshal_VkSubmitInfo(stream, (VkSubmitInfo*)(local_pSubmits + i), streamPtrPtr);
     }
-    uint64_t cgen_var_1384;
-    *&cgen_var_1384 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1384, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     stream->flush();
     ++encodeCount;;
@@ -25684,7 +34112,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1385;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkQueueWaitIdleAsyncGOOGLE = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -25695,9 +34123,9 @@
     memcpy(streamPtr, &opcode_vkQueueWaitIdleAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueWaitIdleAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1386;
-    *&cgen_var_1386 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1386, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     stream->flush();
     ++encodeCount;;
@@ -25747,14 +34175,14 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1387;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(uint32_t);
         for (uint32_t i = 0; i < (uint32_t)((bindInfoCount)); ++i)
         {
             count_VkBindSparseInfo(sFeatureBits, (VkBindSparseInfo*)(local_pBindInfo + i), countPtr);
         }
-        uint64_t cgen_var_1388;
+        uint64_t cgen_var_1;
         *countPtr += 1 * 8;
     }
     uint32_t packetSize_vkQueueBindSparseAsyncGOOGLE = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
@@ -25765,9 +34193,9 @@
     memcpy(streamPtr, &opcode_vkQueueBindSparseAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkQueueBindSparseAsyncGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1389;
-    *&cgen_var_1389 = get_host_u64_VkQueue((*&local_queue));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1389, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkQueue((*&local_queue));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (uint32_t*)&local_bindInfoCount, sizeof(uint32_t));
     *streamPtrPtr += sizeof(uint32_t);
@@ -25775,9 +34203,9 @@
     {
         reservedmarshal_VkBindSparseInfo(stream, (VkBindSparseInfo*)(local_pBindInfo + i), streamPtrPtr);
     }
-    uint64_t cgen_var_1390;
-    *&cgen_var_1390 = get_host_u64_VkFence((*&local_fence));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1390, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFence((*&local_fence));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
     *streamPtrPtr += 1 * 8;
     stream->flush();
     ++encodeCount;;
@@ -25789,8 +34217,6 @@
     if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
 }
 
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
 void VkEncoder::vkGetLinearImageLayoutGOOGLE(
     VkDevice device,
     VkFormat format,
@@ -25810,7 +34236,7 @@
     size_t count = 0;
     size_t* countPtr = &count;
     {
-        uint64_t cgen_var_1391;
+        uint64_t cgen_var_0;
         *countPtr += 1 * 8;
         *countPtr += sizeof(VkFormat);
         *countPtr += sizeof(VkDeviceSize);
@@ -25824,9 +34250,9 @@
     memcpy(streamPtr, &opcode_vkGetLinearImageLayoutGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     memcpy(streamPtr, &packetSize_vkGetLinearImageLayoutGOOGLE, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
     if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1392;
-    *&cgen_var_1392 = get_host_u64_VkDevice((*&local_device));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1392, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
     *streamPtrPtr += 1 * 8;
     memcpy(*streamPtrPtr, (VkFormat*)&local_format, sizeof(VkFormat));
     *streamPtrPtr += sizeof(VkFormat);
@@ -25845,274 +34271,6 @@
     if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
 }
 
-#endif
-#ifdef VK_MVK_moltenvk
-void VkEncoder::vkGetMTLDeviceMVK(
-    VkPhysicalDevice physicalDevice,
-    void** pMTLDevice,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkPhysicalDevice local_physicalDevice;
-    local_physicalDevice = physicalDevice;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1393;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(void*);
-    }
-    uint32_t packetSize_vkGetMTLDeviceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMTLDeviceMVK);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetMTLDeviceMVK = OP_vkGetMTLDeviceMVK;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkGetMTLDeviceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetMTLDeviceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1394;
-    *&cgen_var_1394 = get_host_u64_VkPhysicalDevice((*&local_physicalDevice));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1394, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (void**)pMTLDevice, sizeof(void*));
-    *streamPtrPtr += sizeof(void*);
-    stream->read((void**)pMTLDevice, sizeof(void*));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-VkResult VkEncoder::vkSetMTLTextureMVK(
-    VkImage image,
-    void* mtlTexture,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkImage local_image;
-    local_image = image;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1395;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(uint8_t);
-    }
-    uint32_t packetSize_vkSetMTLTextureMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkSetMTLTextureMVK);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkSetMTLTextureMVK = OP_vkSetMTLTextureMVK;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkSetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkSetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1396;
-    *&cgen_var_1396 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1396, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (void*)mtlTexture, sizeof(uint8_t));
-    *streamPtrPtr += sizeof(uint8_t);
-    stream->read((void*)mtlTexture, sizeof(uint8_t));
-    VkResult vkSetMTLTextureMVK_VkResult_return = (VkResult)0;
-    stream->read(&vkSetMTLTextureMVK_VkResult_return, sizeof(VkResult));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkSetMTLTextureMVK_VkResult_return;
-}
-
-void VkEncoder::vkGetMTLTextureMVK(
-    VkImage image,
-    void** pMTLTexture,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkImage local_image;
-    local_image = image;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1397;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(void*);
-    }
-    uint32_t packetSize_vkGetMTLTextureMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMTLTextureMVK);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetMTLTextureMVK = OP_vkGetMTLTextureMVK;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkGetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetMTLTextureMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1398;
-    *&cgen_var_1398 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1398, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (void**)pMTLTexture, sizeof(void*));
-    *streamPtrPtr += sizeof(void*);
-    stream->read((void**)pMTLTexture, sizeof(void*));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-void VkEncoder::vkGetMTLBufferMVK(
-    VkBuffer buffer,
-    void** pMTLBuffer,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkBuffer local_buffer;
-    local_buffer = buffer;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1399;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(void*);
-    }
-    uint32_t packetSize_vkGetMTLBufferMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetMTLBufferMVK);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetMTLBufferMVK = OP_vkGetMTLBufferMVK;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkGetMTLBufferMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetMTLBufferMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1400;
-    *&cgen_var_1400 = get_host_u64_VkBuffer((*&local_buffer));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1400, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (void**)pMTLBuffer, sizeof(void*));
-    *streamPtrPtr += sizeof(void*);
-    stream->read((void**)pMTLBuffer, sizeof(void*));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-VkResult VkEncoder::vkUseIOSurfaceMVK(
-    VkImage image,
-    void* ioSurface,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkImage local_image;
-    local_image = image;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1401;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(uint8_t);
-    }
-    uint32_t packetSize_vkUseIOSurfaceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkUseIOSurfaceMVK);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkUseIOSurfaceMVK = OP_vkUseIOSurfaceMVK;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkUseIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkUseIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1402;
-    *&cgen_var_1402 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1402, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (void*)ioSurface, sizeof(uint8_t));
-    *streamPtrPtr += sizeof(uint8_t);
-    stream->read((void*)ioSurface, sizeof(uint8_t));
-    VkResult vkUseIOSurfaceMVK_VkResult_return = (VkResult)0;
-    stream->read(&vkUseIOSurfaceMVK_VkResult_return, sizeof(VkResult));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-    return vkUseIOSurfaceMVK_VkResult_return;
-}
-
-void VkEncoder::vkGetIOSurfaceMVK(
-    VkImage image,
-    void** pIOSurface,
-    uint32_t doLock)
-{
-    (void)doLock;
-    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
-    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
-    auto stream = mImpl->stream();
-    auto pool = mImpl->pool();
-    VkImage local_image;
-    local_image = image;
-    size_t count = 0;
-    size_t* countPtr = &count;
-    {
-        uint64_t cgen_var_1403;
-        *countPtr += 1 * 8;
-        *countPtr += sizeof(void*);
-    }
-    uint32_t packetSize_vkGetIOSurfaceMVK = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
-    uint8_t* streamPtr = stream->reserve(packetSize_vkGetIOSurfaceMVK);
-    uint8_t** streamPtrPtr = &streamPtr;
-    uint32_t opcode_vkGetIOSurfaceMVK = OP_vkGetIOSurfaceMVK;
-    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
-    memcpy(streamPtr, &opcode_vkGetIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    memcpy(streamPtr, &packetSize_vkGetIOSurfaceMVK, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
-    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
-    uint64_t cgen_var_1404;
-    *&cgen_var_1404 = get_host_u64_VkImage((*&local_image));
-    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1404, 1 * 8);
-    *streamPtrPtr += 1 * 8;
-    memcpy(*streamPtrPtr, (void**)pIOSurface, sizeof(void*));
-    *streamPtrPtr += sizeof(void*);
-    stream->read((void**)pIOSurface, sizeof(void*));
-    ++encodeCount;;
-    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
-    {
-        pool->freeAll();
-        stream->clearPool();
-    }
-    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
-}
-
-#endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
 void VkEncoder::vkQueueFlushCommandsGOOGLE(
     VkQueue queue,
     VkCommandBuffer commandBuffer,
@@ -26124,5 +34282,1696 @@
 }
 
 #endif
+#ifdef VK_KHR_acceleration_structure
+VkResult VkEncoder::vkCreateAccelerationStructureKHR(
+    VkDevice device,
+    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkAccelerationStructureKHR* pAccelerationStructure,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureCreateInfoKHR* local_pCreateInfo;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_pCreateInfo = nullptr;
+    if (pCreateInfo)
+    {
+        local_pCreateInfo = (VkAccelerationStructureCreateInfoKHR*)pool->alloc(sizeof(const VkAccelerationStructureCreateInfoKHR));
+        deepcopy_VkAccelerationStructureCreateInfoKHR(pool, pCreateInfo, (VkAccelerationStructureCreateInfoKHR*)(local_pCreateInfo));
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfo)
+    {
+        transform_tohost_VkAccelerationStructureCreateInfoKHR(sResourceTracker, (VkAccelerationStructureCreateInfoKHR*)(local_pCreateInfo));
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkAccelerationStructureCreateInfoKHR(sFeatureBits, (VkAccelerationStructureCreateInfoKHR*)(local_pCreateInfo), countPtr);
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        uint64_t cgen_var_1;
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkCreateAccelerationStructureKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateAccelerationStructureKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateAccelerationStructureKHR = OP_vkCreateAccelerationStructureKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkAccelerationStructureCreateInfoKHR(stream, (VkAccelerationStructureCreateInfoKHR*)(local_pCreateInfo), streamPtrPtr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = (uint64_t)((*pAccelerationStructure));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 8);
+    *streamPtrPtr += 8;
+    /* is handle, possibly out */;
+    stream->setHandleMapping(sResourceTracker->createMapping());
+    uint64_t cgen_var_3;
+    stream->read((uint64_t*)&cgen_var_3, 8);
+    stream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_3, (VkAccelerationStructureKHR*)pAccelerationStructure, 1);
+    stream->unsetHandleMapping();
+    VkResult vkCreateAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateAccelerationStructureKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateAccelerationStructureKHR_VkResult_return;
+}
+
+void VkEncoder::vkDestroyAccelerationStructureKHR(
+    VkDevice device,
+    VkAccelerationStructureKHR accelerationStructure,
+    const VkAllocationCallbacks* pAllocator,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureKHR local_accelerationStructure;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_accelerationStructure = accelerationStructure;
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+    }
+    uint32_t packetSize_vkDestroyAccelerationStructureKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkDestroyAccelerationStructureKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkDestroyAccelerationStructureKHR = OP_vkDestroyAccelerationStructureKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkDestroyAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkDestroyAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkAccelerationStructureKHR((*&local_accelerationStructure));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    sResourceTracker->destroyMapping()->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&accelerationStructure);
+    stream->flush();
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBuildAccelerationStructuresKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_infoCount;
+    VkAccelerationStructureBuildGeometryInfoKHR* local_pInfos;
+    VkAccelerationStructureBuildRangeInfoKHR** local_ppBuildRangeInfos;
+    local_commandBuffer = commandBuffer;
+    local_infoCount = infoCount;
+    local_pInfos = nullptr;
+    if (pInfos)
+    {
+        local_pInfos = (VkAccelerationStructureBuildGeometryInfoKHR*)pool->alloc(((infoCount)) * sizeof(const VkAccelerationStructureBuildGeometryInfoKHR));
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            deepcopy_VkAccelerationStructureBuildGeometryInfoKHR(pool, pInfos + i, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i));
+        }
+    }
+    (void)ppBuildRangeInfos;
+    if (local_pInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            transform_tohost_VkAccelerationStructureBuildGeometryInfoKHR(sResourceTracker, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i));
+        }
+    }
+    (void)local_ppBuildRangeInfos;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            count_VkAccelerationStructureBuildGeometryInfoKHR(sFeatureBits, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i), countPtr);
+        }
+        (void)local_ppBuildRangeInfos;
+    }
+    uint32_t packetSize_vkCmdBuildAccelerationStructuresKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBuildAccelerationStructuresKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBuildAccelerationStructuresKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBuildAccelerationStructuresKHR = OP_vkCmdBuildAccelerationStructuresKHR;
+    memcpy(streamPtr, &opcode_vkCmdBuildAccelerationStructuresKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBuildAccelerationStructuresKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_infoCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+    {
+        reservedmarshal_VkAccelerationStructureBuildGeometryInfoKHR(stream, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i), streamPtrPtr);
+    }
+    (void)local_ppBuildRangeInfos;
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdBuildAccelerationStructuresIndirectKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkDeviceAddress* pIndirectDeviceAddresses,
+    const uint32_t* pIndirectStrides,
+    const uint32_t* const* ppMaxPrimitiveCounts,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_infoCount;
+    VkAccelerationStructureBuildGeometryInfoKHR* local_pInfos;
+    VkDeviceAddress* local_pIndirectDeviceAddresses;
+    uint32_t* local_pIndirectStrides;
+    uint32_t** local_ppMaxPrimitiveCounts;
+    local_commandBuffer = commandBuffer;
+    local_infoCount = infoCount;
+    local_pInfos = nullptr;
+    if (pInfos)
+    {
+        local_pInfos = (VkAccelerationStructureBuildGeometryInfoKHR*)pool->alloc(((infoCount)) * sizeof(const VkAccelerationStructureBuildGeometryInfoKHR));
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            deepcopy_VkAccelerationStructureBuildGeometryInfoKHR(pool, pInfos + i, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i));
+        }
+    }
+    // Avoiding deepcopy for pIndirectDeviceAddresses
+    local_pIndirectDeviceAddresses = (VkDeviceAddress*)pIndirectDeviceAddresses;
+    // Avoiding deepcopy for pIndirectStrides
+    local_pIndirectStrides = (uint32_t*)pIndirectStrides;
+    (void)ppMaxPrimitiveCounts;
+    if (local_pInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            transform_tohost_VkAccelerationStructureBuildGeometryInfoKHR(sResourceTracker, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i));
+        }
+    }
+    (void)local_ppMaxPrimitiveCounts;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            count_VkAccelerationStructureBuildGeometryInfoKHR(sFeatureBits, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i), countPtr);
+        }
+        *countPtr += ((infoCount)) * sizeof(VkDeviceAddress);
+        *countPtr += ((infoCount)) * sizeof(uint32_t);
+        (void)local_ppMaxPrimitiveCounts;
+    }
+    uint32_t packetSize_vkCmdBuildAccelerationStructuresIndirectKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdBuildAccelerationStructuresIndirectKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdBuildAccelerationStructuresIndirectKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdBuildAccelerationStructuresIndirectKHR = OP_vkCmdBuildAccelerationStructuresIndirectKHR;
+    memcpy(streamPtr, &opcode_vkCmdBuildAccelerationStructuresIndirectKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdBuildAccelerationStructuresIndirectKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_infoCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+    {
+        reservedmarshal_VkAccelerationStructureBuildGeometryInfoKHR(stream, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i), streamPtrPtr);
+    }
+    memcpy(*streamPtrPtr, (VkDeviceAddress*)local_pIndirectDeviceAddresses, ((infoCount)) * sizeof(VkDeviceAddress));
+    *streamPtrPtr += ((infoCount)) * sizeof(VkDeviceAddress);
+    memcpy(*streamPtrPtr, (uint32_t*)local_pIndirectStrides, ((infoCount)) * sizeof(uint32_t));
+    *streamPtrPtr += ((infoCount)) * sizeof(uint32_t);
+    (void)local_ppMaxPrimitiveCounts;
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkBuildAccelerationStructuresKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    uint32_t infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_deferredOperation;
+    uint32_t local_infoCount;
+    VkAccelerationStructureBuildGeometryInfoKHR* local_pInfos;
+    VkAccelerationStructureBuildRangeInfoKHR** local_ppBuildRangeInfos;
+    local_device = device;
+    local_deferredOperation = deferredOperation;
+    local_infoCount = infoCount;
+    local_pInfos = nullptr;
+    if (pInfos)
+    {
+        local_pInfos = (VkAccelerationStructureBuildGeometryInfoKHR*)pool->alloc(((infoCount)) * sizeof(const VkAccelerationStructureBuildGeometryInfoKHR));
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            deepcopy_VkAccelerationStructureBuildGeometryInfoKHR(pool, pInfos + i, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i));
+        }
+    }
+    (void)ppBuildRangeInfos;
+    if (local_pInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            transform_tohost_VkAccelerationStructureBuildGeometryInfoKHR(sResourceTracker, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i));
+        }
+    }
+    (void)local_ppBuildRangeInfos;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+        {
+            count_VkAccelerationStructureBuildGeometryInfoKHR(sFeatureBits, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i), countPtr);
+        }
+        (void)local_ppBuildRangeInfos;
+    }
+    uint32_t packetSize_vkBuildAccelerationStructuresKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkBuildAccelerationStructuresKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkBuildAccelerationStructuresKHR = OP_vkBuildAccelerationStructuresKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkBuildAccelerationStructuresKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkBuildAccelerationStructuresKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_deferredOperation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_infoCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((infoCount)); ++i)
+    {
+        reservedmarshal_VkAccelerationStructureBuildGeometryInfoKHR(stream, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pInfos + i), streamPtrPtr);
+    }
+    (void)local_ppBuildRangeInfos;
+    VkResult vkBuildAccelerationStructuresKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkBuildAccelerationStructuresKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkBuildAccelerationStructuresKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkCopyAccelerationStructureKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyAccelerationStructureInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_deferredOperation;
+    VkCopyAccelerationStructureInfoKHR* local_pInfo;
+    local_device = device;
+    local_deferredOperation = deferredOperation;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkCopyAccelerationStructureInfoKHR*)pool->alloc(sizeof(const VkCopyAccelerationStructureInfoKHR));
+        deepcopy_VkCopyAccelerationStructureInfoKHR(pool, pInfo, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkCopyAccelerationStructureInfoKHR(sResourceTracker, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        count_VkCopyAccelerationStructureInfoKHR(sFeatureBits, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkCopyAccelerationStructureKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCopyAccelerationStructureKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCopyAccelerationStructureKHR = OP_vkCopyAccelerationStructureKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCopyAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCopyAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_deferredOperation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    reservedmarshal_VkCopyAccelerationStructureInfoKHR(stream, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo), streamPtrPtr);
+    VkResult vkCopyAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCopyAccelerationStructureKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCopyAccelerationStructureKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkCopyAccelerationStructureToMemoryKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_deferredOperation;
+    VkCopyAccelerationStructureToMemoryInfoKHR* local_pInfo;
+    local_device = device;
+    local_deferredOperation = deferredOperation;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkCopyAccelerationStructureToMemoryInfoKHR*)pool->alloc(sizeof(const VkCopyAccelerationStructureToMemoryInfoKHR));
+        deepcopy_VkCopyAccelerationStructureToMemoryInfoKHR(pool, pInfo, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkCopyAccelerationStructureToMemoryInfoKHR(sResourceTracker, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        count_VkCopyAccelerationStructureToMemoryInfoKHR(sFeatureBits, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkCopyAccelerationStructureToMemoryKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCopyAccelerationStructureToMemoryKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCopyAccelerationStructureToMemoryKHR = OP_vkCopyAccelerationStructureToMemoryKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCopyAccelerationStructureToMemoryKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCopyAccelerationStructureToMemoryKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_deferredOperation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    reservedmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(stream, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo), streamPtrPtr);
+    VkResult vkCopyAccelerationStructureToMemoryKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCopyAccelerationStructureToMemoryKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCopyAccelerationStructureToMemoryKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkCopyMemoryToAccelerationStructureKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_deferredOperation;
+    VkCopyMemoryToAccelerationStructureInfoKHR* local_pInfo;
+    local_device = device;
+    local_deferredOperation = deferredOperation;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkCopyMemoryToAccelerationStructureInfoKHR*)pool->alloc(sizeof(const VkCopyMemoryToAccelerationStructureInfoKHR));
+        deepcopy_VkCopyMemoryToAccelerationStructureInfoKHR(pool, pInfo, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkCopyMemoryToAccelerationStructureInfoKHR(sResourceTracker, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        count_VkCopyMemoryToAccelerationStructureInfoKHR(sFeatureBits, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkCopyMemoryToAccelerationStructureKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCopyMemoryToAccelerationStructureKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCopyMemoryToAccelerationStructureKHR = OP_vkCopyMemoryToAccelerationStructureKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCopyMemoryToAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCopyMemoryToAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_deferredOperation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    reservedmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(stream, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo), streamPtrPtr);
+    VkResult vkCopyMemoryToAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCopyMemoryToAccelerationStructureKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCopyMemoryToAccelerationStructureKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkWriteAccelerationStructuresPropertiesKHR(
+    VkDevice device,
+    uint32_t accelerationStructureCount,
+    const VkAccelerationStructureKHR* pAccelerationStructures,
+    VkQueryType queryType,
+    size_t dataSize,
+    void* pData,
+    size_t stride,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    uint32_t local_accelerationStructureCount;
+    VkAccelerationStructureKHR* local_pAccelerationStructures;
+    VkQueryType local_queryType;
+    size_t local_dataSize;
+    size_t local_stride;
+    local_device = device;
+    local_accelerationStructureCount = accelerationStructureCount;
+    // Avoiding deepcopy for pAccelerationStructures
+    local_pAccelerationStructures = (VkAccelerationStructureKHR*)pAccelerationStructures;
+    local_queryType = queryType;
+    local_dataSize = dataSize;
+    local_stride = stride;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        if (((accelerationStructureCount)))
+        {
+            *countPtr += ((accelerationStructureCount)) * 8;
+        }
+        *countPtr += sizeof(VkQueryType);
+        *countPtr += 8;
+        *countPtr += ((dataSize)) * sizeof(uint8_t);
+        *countPtr += 8;
+    }
+    uint32_t packetSize_vkWriteAccelerationStructuresPropertiesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkWriteAccelerationStructuresPropertiesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkWriteAccelerationStructuresPropertiesKHR = OP_vkWriteAccelerationStructuresPropertiesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkWriteAccelerationStructuresPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkWriteAccelerationStructuresPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_accelerationStructureCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    if (((accelerationStructureCount)))
+    {
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*streamPtrPtr);
+        for (uint32_t k = 0; k < ((accelerationStructureCount)); ++k)
+        {
+            uint64_t tmpval = get_host_u64_VkAccelerationStructureKHR(local_pAccelerationStructures[k]);
+            memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((accelerationStructureCount));
+    }
+    memcpy(*streamPtrPtr, (VkQueryType*)&local_queryType, sizeof(VkQueryType));
+    *streamPtrPtr += sizeof(VkQueryType);
+    uint64_t cgen_var_2 = (uint64_t)local_dataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (void*)pData, ((dataSize)) * sizeof(uint8_t));
+    *streamPtrPtr += ((dataSize)) * sizeof(uint8_t);
+    uint64_t cgen_var_3 = (uint64_t)local_stride;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t));
+    VkResult vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkWriteAccelerationStructuresPropertiesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkWriteAccelerationStructuresPropertiesKHR_VkResult_return;
+}
+
+void VkEncoder::vkCmdCopyAccelerationStructureKHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyAccelerationStructureInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCopyAccelerationStructureInfoKHR* local_pInfo;
+    local_commandBuffer = commandBuffer;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkCopyAccelerationStructureInfoKHR*)pool->alloc(sizeof(const VkCopyAccelerationStructureInfoKHR));
+        deepcopy_VkCopyAccelerationStructureInfoKHR(pool, pInfo, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkCopyAccelerationStructureInfoKHR(sResourceTracker, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCopyAccelerationStructureInfoKHR(sFeatureBits, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCopyAccelerationStructureKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyAccelerationStructureKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyAccelerationStructureKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyAccelerationStructureKHR = OP_vkCmdCopyAccelerationStructureKHR;
+    memcpy(streamPtr, &opcode_vkCmdCopyAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkCopyAccelerationStructureInfoKHR(stream, (VkCopyAccelerationStructureInfoKHR*)(local_pInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdCopyAccelerationStructureToMemoryKHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCopyAccelerationStructureToMemoryInfoKHR* local_pInfo;
+    local_commandBuffer = commandBuffer;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkCopyAccelerationStructureToMemoryInfoKHR*)pool->alloc(sizeof(const VkCopyAccelerationStructureToMemoryInfoKHR));
+        deepcopy_VkCopyAccelerationStructureToMemoryInfoKHR(pool, pInfo, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkCopyAccelerationStructureToMemoryInfoKHR(sResourceTracker, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCopyAccelerationStructureToMemoryInfoKHR(sFeatureBits, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCopyAccelerationStructureToMemoryKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyAccelerationStructureToMemoryKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyAccelerationStructureToMemoryKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyAccelerationStructureToMemoryKHR = OP_vkCmdCopyAccelerationStructureToMemoryKHR;
+    memcpy(streamPtr, &opcode_vkCmdCopyAccelerationStructureToMemoryKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyAccelerationStructureToMemoryKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(stream, (VkCopyAccelerationStructureToMemoryInfoKHR*)(local_pInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkCmdCopyMemoryToAccelerationStructureKHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkCopyMemoryToAccelerationStructureInfoKHR* local_pInfo;
+    local_commandBuffer = commandBuffer;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkCopyMemoryToAccelerationStructureInfoKHR*)pool->alloc(sizeof(const VkCopyMemoryToAccelerationStructureInfoKHR));
+        deepcopy_VkCopyMemoryToAccelerationStructureInfoKHR(pool, pInfo, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkCopyMemoryToAccelerationStructureInfoKHR(sResourceTracker, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkCopyMemoryToAccelerationStructureInfoKHR(sFeatureBits, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkCmdCopyMemoryToAccelerationStructureKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdCopyMemoryToAccelerationStructureKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdCopyMemoryToAccelerationStructureKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdCopyMemoryToAccelerationStructureKHR = OP_vkCmdCopyMemoryToAccelerationStructureKHR;
+    memcpy(streamPtr, &opcode_vkCmdCopyMemoryToAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdCopyMemoryToAccelerationStructureKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(stream, (VkCopyMemoryToAccelerationStructureInfoKHR*)(local_pInfo), streamPtrPtr);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkDeviceAddress VkEncoder::vkGetAccelerationStructureDeviceAddressKHR(
+    VkDevice device,
+    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureDeviceAddressInfoKHR* local_pInfo;
+    local_device = device;
+    local_pInfo = nullptr;
+    if (pInfo)
+    {
+        local_pInfo = (VkAccelerationStructureDeviceAddressInfoKHR*)pool->alloc(sizeof(const VkAccelerationStructureDeviceAddressInfoKHR));
+        deepcopy_VkAccelerationStructureDeviceAddressInfoKHR(pool, pInfo, (VkAccelerationStructureDeviceAddressInfoKHR*)(local_pInfo));
+    }
+    if (local_pInfo)
+    {
+        transform_tohost_VkAccelerationStructureDeviceAddressInfoKHR(sResourceTracker, (VkAccelerationStructureDeviceAddressInfoKHR*)(local_pInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkAccelerationStructureDeviceAddressInfoKHR(sFeatureBits, (VkAccelerationStructureDeviceAddressInfoKHR*)(local_pInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetAccelerationStructureDeviceAddressKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetAccelerationStructureDeviceAddressKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetAccelerationStructureDeviceAddressKHR = OP_vkGetAccelerationStructureDeviceAddressKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetAccelerationStructureDeviceAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetAccelerationStructureDeviceAddressKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkAccelerationStructureDeviceAddressInfoKHR(stream, (VkAccelerationStructureDeviceAddressInfoKHR*)(local_pInfo), streamPtrPtr);
+    VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0;
+    stream->read(&vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return, sizeof(VkDeviceAddress));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return;
+}
+
+void VkEncoder::vkCmdWriteAccelerationStructuresPropertiesKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t accelerationStructureCount,
+    const VkAccelerationStructureKHR* pAccelerationStructures,
+    VkQueryType queryType,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_accelerationStructureCount;
+    VkAccelerationStructureKHR* local_pAccelerationStructures;
+    VkQueryType local_queryType;
+    VkQueryPool local_queryPool;
+    uint32_t local_firstQuery;
+    local_commandBuffer = commandBuffer;
+    local_accelerationStructureCount = accelerationStructureCount;
+    // Avoiding deepcopy for pAccelerationStructures
+    local_pAccelerationStructures = (VkAccelerationStructureKHR*)pAccelerationStructures;
+    local_queryType = queryType;
+    local_queryPool = queryPool;
+    local_firstQuery = firstQuery;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        if (((accelerationStructureCount)))
+        {
+            *countPtr += ((accelerationStructureCount)) * 8;
+        }
+        *countPtr += sizeof(VkQueryType);
+        uint64_t cgen_var_2;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdWriteAccelerationStructuresPropertiesKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdWriteAccelerationStructuresPropertiesKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdWriteAccelerationStructuresPropertiesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdWriteAccelerationStructuresPropertiesKHR = OP_vkCmdWriteAccelerationStructuresPropertiesKHR;
+    memcpy(streamPtr, &opcode_vkCmdWriteAccelerationStructuresPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdWriteAccelerationStructuresPropertiesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_accelerationStructureCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    if (((accelerationStructureCount)))
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*streamPtrPtr);
+        for (uint32_t k = 0; k < ((accelerationStructureCount)); ++k)
+        {
+            uint64_t tmpval = get_host_u64_VkAccelerationStructureKHR(local_pAccelerationStructures[k]);
+            memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((accelerationStructureCount));
+    }
+    memcpy(*streamPtrPtr, (VkQueryType*)&local_queryType, sizeof(VkQueryType));
+    *streamPtrPtr += sizeof(VkQueryType);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkQueryPool((*&local_queryPool));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstQuery, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkGetDeviceAccelerationStructureCompatibilityKHR(
+    VkDevice device,
+    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
+    VkAccelerationStructureCompatibilityKHR* pCompatibility,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureVersionInfoKHR* local_pVersionInfo;
+    local_device = device;
+    local_pVersionInfo = nullptr;
+    if (pVersionInfo)
+    {
+        local_pVersionInfo = (VkAccelerationStructureVersionInfoKHR*)pool->alloc(sizeof(const VkAccelerationStructureVersionInfoKHR));
+        deepcopy_VkAccelerationStructureVersionInfoKHR(pool, pVersionInfo, (VkAccelerationStructureVersionInfoKHR*)(local_pVersionInfo));
+    }
+    if (local_pVersionInfo)
+    {
+        transform_tohost_VkAccelerationStructureVersionInfoKHR(sResourceTracker, (VkAccelerationStructureVersionInfoKHR*)(local_pVersionInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkAccelerationStructureVersionInfoKHR(sFeatureBits, (VkAccelerationStructureVersionInfoKHR*)(local_pVersionInfo), countPtr);
+        *countPtr += sizeof(VkAccelerationStructureCompatibilityKHR);
+    }
+    uint32_t packetSize_vkGetDeviceAccelerationStructureCompatibilityKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetDeviceAccelerationStructureCompatibilityKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetDeviceAccelerationStructureCompatibilityKHR = OP_vkGetDeviceAccelerationStructureCompatibilityKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetDeviceAccelerationStructureCompatibilityKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetDeviceAccelerationStructureCompatibilityKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    reservedmarshal_VkAccelerationStructureVersionInfoKHR(stream, (VkAccelerationStructureVersionInfoKHR*)(local_pVersionInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (VkAccelerationStructureCompatibilityKHR*)pCompatibility, sizeof(VkAccelerationStructureCompatibilityKHR));
+    *streamPtrPtr += sizeof(VkAccelerationStructureCompatibilityKHR);
+    stream->read((VkAccelerationStructureCompatibilityKHR*)pCompatibility, sizeof(VkAccelerationStructureCompatibilityKHR));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+void VkEncoder::vkGetAccelerationStructureBuildSizesKHR(
+    VkDevice device,
+    VkAccelerationStructureBuildTypeKHR buildType,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
+    const uint32_t* pMaxPrimitiveCounts,
+    VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkAccelerationStructureBuildTypeKHR local_buildType;
+    VkAccelerationStructureBuildGeometryInfoKHR* local_pBuildInfo;
+    uint32_t* local_pMaxPrimitiveCounts;
+    local_device = device;
+    local_buildType = buildType;
+    local_pBuildInfo = nullptr;
+    if (pBuildInfo)
+    {
+        local_pBuildInfo = (VkAccelerationStructureBuildGeometryInfoKHR*)pool->alloc(sizeof(const VkAccelerationStructureBuildGeometryInfoKHR));
+        deepcopy_VkAccelerationStructureBuildGeometryInfoKHR(pool, pBuildInfo, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pBuildInfo));
+    }
+    // Avoiding deepcopy for pMaxPrimitiveCounts
+    local_pMaxPrimitiveCounts = (uint32_t*)pMaxPrimitiveCounts;
+    if (local_pBuildInfo)
+    {
+        transform_tohost_VkAccelerationStructureBuildGeometryInfoKHR(sResourceTracker, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pBuildInfo));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(VkAccelerationStructureBuildTypeKHR);
+        count_VkAccelerationStructureBuildGeometryInfoKHR(sFeatureBits, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pBuildInfo), countPtr);
+        *countPtr += pBuildInfo->geometryCount * sizeof(uint32_t);
+        count_VkAccelerationStructureBuildSizesInfoKHR(sFeatureBits, (VkAccelerationStructureBuildSizesInfoKHR*)(pSizeInfo), countPtr);
+    }
+    uint32_t packetSize_vkGetAccelerationStructureBuildSizesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetAccelerationStructureBuildSizesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetAccelerationStructureBuildSizesKHR = OP_vkGetAccelerationStructureBuildSizesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetAccelerationStructureBuildSizesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetAccelerationStructureBuildSizesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (VkAccelerationStructureBuildTypeKHR*)&local_buildType, sizeof(VkAccelerationStructureBuildTypeKHR));
+    *streamPtrPtr += sizeof(VkAccelerationStructureBuildTypeKHR);
+    reservedmarshal_VkAccelerationStructureBuildGeometryInfoKHR(stream, (VkAccelerationStructureBuildGeometryInfoKHR*)(local_pBuildInfo), streamPtrPtr);
+    memcpy(*streamPtrPtr, (uint32_t*)local_pMaxPrimitiveCounts, pBuildInfo->geometryCount * sizeof(uint32_t));
+    *streamPtrPtr += pBuildInfo->geometryCount * sizeof(uint32_t);
+    reservedmarshal_VkAccelerationStructureBuildSizesInfoKHR(stream, (VkAccelerationStructureBuildSizesInfoKHR*)(pSizeInfo), streamPtrPtr);
+    unmarshal_VkAccelerationStructureBuildSizesInfoKHR(stream, (VkAccelerationStructureBuildSizesInfoKHR*)(pSizeInfo));
+    if (pSizeInfo)
+    {
+        transform_fromhost_VkAccelerationStructureBuildSizesInfoKHR(sResourceTracker, (VkAccelerationStructureBuildSizesInfoKHR*)(pSizeInfo));
+    }
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void VkEncoder::vkCmdTraceRaysKHR(
+    VkCommandBuffer commandBuffer,
+    const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+    uint32_t width,
+    uint32_t height,
+    uint32_t depth,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkStridedDeviceAddressRegionKHR* local_pRaygenShaderBindingTable;
+    VkStridedDeviceAddressRegionKHR* local_pMissShaderBindingTable;
+    VkStridedDeviceAddressRegionKHR* local_pHitShaderBindingTable;
+    VkStridedDeviceAddressRegionKHR* local_pCallableShaderBindingTable;
+    uint32_t local_width;
+    uint32_t local_height;
+    uint32_t local_depth;
+    local_commandBuffer = commandBuffer;
+    local_pRaygenShaderBindingTable = nullptr;
+    if (pRaygenShaderBindingTable)
+    {
+        local_pRaygenShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pRaygenShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable));
+    }
+    local_pMissShaderBindingTable = nullptr;
+    if (pMissShaderBindingTable)
+    {
+        local_pMissShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pMissShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable));
+    }
+    local_pHitShaderBindingTable = nullptr;
+    if (pHitShaderBindingTable)
+    {
+        local_pHitShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pHitShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable));
+    }
+    local_pCallableShaderBindingTable = nullptr;
+    if (pCallableShaderBindingTable)
+    {
+        local_pCallableShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pCallableShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable));
+    }
+    local_width = width;
+    local_height = height;
+    local_depth = depth;
+    if (local_pRaygenShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable));
+    }
+    if (local_pMissShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable));
+    }
+    if (local_pHitShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable));
+    }
+    if (local_pCallableShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable), countPtr);
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable), countPtr);
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable), countPtr);
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable), countPtr);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdTraceRaysKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdTraceRaysKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdTraceRaysKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdTraceRaysKHR = OP_vkCmdTraceRaysKHR;
+    memcpy(streamPtr, &opcode_vkCmdTraceRaysKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdTraceRaysKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable), streamPtrPtr);
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable), streamPtrPtr);
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable), streamPtrPtr);
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable), streamPtrPtr);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_width, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_height, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_depth, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkResult VkEncoder::vkCreateRayTracingPipelinesKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    VkPipelineCache pipelineCache,
+    uint32_t createInfoCount,
+    const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
+    const VkAllocationCallbacks* pAllocator,
+    VkPipeline* pPipelines,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkDeferredOperationKHR local_deferredOperation;
+    VkPipelineCache local_pipelineCache;
+    uint32_t local_createInfoCount;
+    VkRayTracingPipelineCreateInfoKHR* local_pCreateInfos;
+    VkAllocationCallbacks* local_pAllocator;
+    local_device = device;
+    local_deferredOperation = deferredOperation;
+    local_pipelineCache = pipelineCache;
+    local_createInfoCount = createInfoCount;
+    local_pCreateInfos = nullptr;
+    if (pCreateInfos)
+    {
+        local_pCreateInfos = (VkRayTracingPipelineCreateInfoKHR*)pool->alloc(((createInfoCount)) * sizeof(const VkRayTracingPipelineCreateInfoKHR));
+        for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+        {
+            deepcopy_VkRayTracingPipelineCreateInfoKHR(pool, pCreateInfos + i, (VkRayTracingPipelineCreateInfoKHR*)(local_pCreateInfos + i));
+        }
+    }
+    local_pAllocator = nullptr;
+    if (pAllocator)
+    {
+        local_pAllocator = (VkAllocationCallbacks*)pool->alloc(sizeof(const VkAllocationCallbacks));
+        deepcopy_VkAllocationCallbacks(pool, pAllocator, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    local_pAllocator = nullptr;
+    if (local_pCreateInfos)
+    {
+        for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+        {
+            transform_tohost_VkRayTracingPipelineCreateInfoKHR(sResourceTracker, (VkRayTracingPipelineCreateInfoKHR*)(local_pCreateInfos + i));
+        }
+    }
+    if (local_pAllocator)
+    {
+        transform_tohost_VkAllocationCallbacks(sResourceTracker, (VkAllocationCallbacks*)(local_pAllocator));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+        {
+            count_VkRayTracingPipelineCreateInfoKHR(sFeatureBits, (VkRayTracingPipelineCreateInfoKHR*)(local_pCreateInfos + i), countPtr);
+        }
+        // WARNING PTR CHECK
+        *countPtr += 8;
+        if (local_pAllocator)
+        {
+            count_VkAllocationCallbacks(sFeatureBits, (VkAllocationCallbacks*)(local_pAllocator), countPtr);
+        }
+        if (((createInfoCount)))
+        {
+            *countPtr += ((createInfoCount)) * 8;
+        }
+    }
+    uint32_t packetSize_vkCreateRayTracingPipelinesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCreateRayTracingPipelinesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCreateRayTracingPipelinesKHR = OP_vkCreateRayTracingPipelinesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkCreateRayTracingPipelinesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCreateRayTracingPipelinesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1 = (uint64_t)local_deferredOperation;
+    memcpy((*streamPtrPtr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkPipelineCache((*&local_pipelineCache));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_2, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_createInfoCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)((createInfoCount)); ++i)
+    {
+        reservedmarshal_VkRayTracingPipelineCreateInfoKHR(stream, (VkRayTracingPipelineCreateInfoKHR*)(local_pCreateInfos + i), streamPtrPtr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)local_pAllocator;
+    memcpy((*streamPtrPtr), &cgen_var_3, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    if (local_pAllocator)
+    {
+        reservedmarshal_VkAllocationCallbacks(stream, (VkAllocationCallbacks*)(local_pAllocator), streamPtrPtr);
+    }
+    /* is handle, possibly out */;
+    if (((createInfoCount)))
+    {
+        uint8_t* cgen_var_4_ptr = (uint8_t*)(*streamPtrPtr);
+        for (uint32_t k = 0; k < ((createInfoCount)); ++k)
+        {
+            uint64_t tmpval = (uint64_t)(pPipelines[k]);
+            memcpy(cgen_var_4_ptr + k * 8, &tmpval, sizeof(uint64_t));
+        }
+        *streamPtrPtr += 8 * ((createInfoCount));
+    }
+    /* is handle, possibly out */;
+    if (((createInfoCount)))
+    {
+        uint64_t* cgen_var_5;
+        stream->alloc((void**)&cgen_var_5, ((createInfoCount)) * 8);
+        stream->read((uint64_t*)cgen_var_5, ((createInfoCount)) * 8);
+        stream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_5, (VkPipeline*)pPipelines, ((createInfoCount)));
+    }
+    VkResult vkCreateRayTracingPipelinesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkCreateRayTracingPipelinesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkCreateRayTracingPipelinesKHR_VkResult_return;
+}
+
+VkResult VkEncoder::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipeline local_pipeline;
+    uint32_t local_firstGroup;
+    uint32_t local_groupCount;
+    size_t local_dataSize;
+    local_device = device;
+    local_pipeline = pipeline;
+    local_firstGroup = firstGroup;
+    local_groupCount = groupCount;
+    local_dataSize = dataSize;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(uint32_t);
+        *countPtr += 8;
+        *countPtr += ((dataSize)) * sizeof(uint8_t);
+    }
+    uint32_t packetSize_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_firstGroup, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (uint32_t*)&local_groupCount, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    uint64_t cgen_var_2 = (uint64_t)local_dataSize;
+    memcpy((*streamPtrPtr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*streamPtrPtr));
+    *streamPtrPtr += 8;
+    memcpy(*streamPtrPtr, (void*)pData, ((dataSize)) * sizeof(uint8_t));
+    *streamPtrPtr += ((dataSize)) * sizeof(uint8_t);
+    stream->read((void*)pData, ((dataSize)) * sizeof(uint8_t));
+    VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = (VkResult)0;
+    stream->read(&vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return, sizeof(VkResult));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return;
+}
+
+void VkEncoder::vkCmdTraceRaysIndirectKHR(
+    VkCommandBuffer commandBuffer,
+    const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+    VkDeviceAddress indirectDeviceAddress,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    VkStridedDeviceAddressRegionKHR* local_pRaygenShaderBindingTable;
+    VkStridedDeviceAddressRegionKHR* local_pMissShaderBindingTable;
+    VkStridedDeviceAddressRegionKHR* local_pHitShaderBindingTable;
+    VkStridedDeviceAddressRegionKHR* local_pCallableShaderBindingTable;
+    VkDeviceAddress local_indirectDeviceAddress;
+    local_commandBuffer = commandBuffer;
+    local_pRaygenShaderBindingTable = nullptr;
+    if (pRaygenShaderBindingTable)
+    {
+        local_pRaygenShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pRaygenShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable));
+    }
+    local_pMissShaderBindingTable = nullptr;
+    if (pMissShaderBindingTable)
+    {
+        local_pMissShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pMissShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable));
+    }
+    local_pHitShaderBindingTable = nullptr;
+    if (pHitShaderBindingTable)
+    {
+        local_pHitShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pHitShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable));
+    }
+    local_pCallableShaderBindingTable = nullptr;
+    if (pCallableShaderBindingTable)
+    {
+        local_pCallableShaderBindingTable = (VkStridedDeviceAddressRegionKHR*)pool->alloc(sizeof(const VkStridedDeviceAddressRegionKHR));
+        deepcopy_VkStridedDeviceAddressRegionKHR(pool, pCallableShaderBindingTable, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable));
+    }
+    local_indirectDeviceAddress = indirectDeviceAddress;
+    if (local_pRaygenShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable));
+    }
+    if (local_pMissShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable));
+    }
+    if (local_pHitShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable));
+    }
+    if (local_pCallableShaderBindingTable)
+    {
+        transform_tohost_VkStridedDeviceAddressRegionKHR(sResourceTracker, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable));
+    }
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable), countPtr);
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable), countPtr);
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable), countPtr);
+        count_VkStridedDeviceAddressRegionKHR(sFeatureBits, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable), countPtr);
+        *countPtr += sizeof(VkDeviceAddress);
+    }
+    uint32_t packetSize_vkCmdTraceRaysIndirectKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdTraceRaysIndirectKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdTraceRaysIndirectKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdTraceRaysIndirectKHR = OP_vkCmdTraceRaysIndirectKHR;
+    memcpy(streamPtr, &opcode_vkCmdTraceRaysIndirectKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdTraceRaysIndirectKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pRaygenShaderBindingTable), streamPtrPtr);
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pMissShaderBindingTable), streamPtrPtr);
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pHitShaderBindingTable), streamPtrPtr);
+    reservedmarshal_VkStridedDeviceAddressRegionKHR(stream, (VkStridedDeviceAddressRegionKHR*)(local_pCallableShaderBindingTable), streamPtrPtr);
+    memcpy(*streamPtrPtr, (VkDeviceAddress*)&local_indirectDeviceAddress, sizeof(VkDeviceAddress));
+    *streamPtrPtr += sizeof(VkDeviceAddress);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+VkDeviceSize VkEncoder::vkGetRayTracingShaderGroupStackSizeKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t group,
+    VkShaderGroupShaderKHR groupShader,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkDevice local_device;
+    VkPipeline local_pipeline;
+    uint32_t local_group;
+    VkShaderGroupShaderKHR local_groupShader;
+    local_device = device;
+    local_pipeline = pipeline;
+    local_group = group;
+    local_groupShader = groupShader;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        uint64_t cgen_var_1;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+        *countPtr += sizeof(VkShaderGroupShaderKHR);
+    }
+    uint32_t packetSize_vkGetRayTracingShaderGroupStackSizeKHR = 4 + 4 + (queueSubmitWithCommandsEnabled ? 4 : 0) + count;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkGetRayTracingShaderGroupStackSizeKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkGetRayTracingShaderGroupStackSizeKHR = OP_vkGetRayTracingShaderGroupStackSizeKHR;
+    uint32_t seqno; if (queueSubmitWithCommandsEnabled) seqno = ResourceTracker::nextSeqno();
+    memcpy(streamPtr, &opcode_vkGetRayTracingShaderGroupStackSizeKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkGetRayTracingShaderGroupStackSizeKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (queueSubmitWithCommandsEnabled) { memcpy(streamPtr, &seqno, sizeof(uint32_t)); streamPtr += sizeof(uint32_t); }
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDevice((*&local_device));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&local_pipeline));
+    memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *streamPtrPtr += 1 * 8;
+    memcpy(*streamPtrPtr, (uint32_t*)&local_group, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    memcpy(*streamPtrPtr, (VkShaderGroupShaderKHR*)&local_groupShader, sizeof(VkShaderGroupShaderKHR));
+    *streamPtrPtr += sizeof(VkShaderGroupShaderKHR);
+    VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = (VkDeviceSize)0;
+    stream->read(&vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return, sizeof(VkDeviceSize));
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+    return vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return;
+}
+
+void VkEncoder::vkCmdSetRayTracingPipelineStackSizeKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t pipelineStackSize,
+    uint32_t doLock)
+{
+    (void)doLock;
+    bool queueSubmitWithCommandsEnabled = sFeatureBits & VULKAN_STREAM_FEATURE_QUEUE_SUBMIT_WITH_COMMANDS_BIT;
+    if (!queueSubmitWithCommandsEnabled && doLock) this->lock();
+    auto stream = mImpl->stream();
+    auto pool = mImpl->pool();
+    VkCommandBuffer local_commandBuffer;
+    uint32_t local_pipelineStackSize;
+    local_commandBuffer = commandBuffer;
+    local_pipelineStackSize = pipelineStackSize;
+    size_t count = 0;
+    size_t* countPtr = &count;
+    {
+        uint64_t cgen_var_0;
+        *countPtr += 1 * 8;
+        *countPtr += sizeof(uint32_t);
+    }
+    uint32_t packetSize_vkCmdSetRayTracingPipelineStackSizeKHR = 4 + 4 + count;
+    if (queueSubmitWithCommandsEnabled) packetSize_vkCmdSetRayTracingPipelineStackSizeKHR -= 8;
+    uint8_t* streamPtr = stream->reserve(packetSize_vkCmdSetRayTracingPipelineStackSizeKHR);
+    uint8_t** streamPtrPtr = &streamPtr;
+    uint32_t opcode_vkCmdSetRayTracingPipelineStackSizeKHR = OP_vkCmdSetRayTracingPipelineStackSizeKHR;
+    memcpy(streamPtr, &opcode_vkCmdSetRayTracingPipelineStackSizeKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    memcpy(streamPtr, &packetSize_vkCmdSetRayTracingPipelineStackSizeKHR, sizeof(uint32_t)); streamPtr += sizeof(uint32_t);
+    if (!queueSubmitWithCommandsEnabled)
+    {
+        uint64_t cgen_var_0;
+        *&cgen_var_0 = get_host_u64_VkCommandBuffer((*&local_commandBuffer));
+        memcpy(*streamPtrPtr, (uint64_t*)&cgen_var_0, 1 * 8);
+        *streamPtrPtr += 1 * 8;
+    }
+    memcpy(*streamPtrPtr, (uint32_t*)&local_pipelineStackSize, sizeof(uint32_t));
+    *streamPtrPtr += sizeof(uint32_t);
+    ++encodeCount;;
+    if (0 == encodeCount % POOL_CLEAR_INTERVAL)
+    {
+        pool->freeAll();
+        stream->clearPool();
+    }
+    if (!queueSubmitWithCommandsEnabled && doLock) this->unlock();
+}
+
+#endif
+#ifdef VK_KHR_ray_query
+#endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/VkEncoder.h b/system/vulkan_enc/VkEncoder.h
index 26694c5..e667e79 100644
--- a/system/vulkan_enc/VkEncoder.h
+++ b/system/vulkan_enc/VkEncoder.h
@@ -987,6 +987,78 @@
         VkDescriptorSetLayoutSupport* pSupport,
         uint32_t doLock);
 #endif
+#ifdef VK_VERSION_1_2
+    void vkCmdDrawIndirectCount(
+    VkCommandBuffer commandBuffer,
+        VkBuffer buffer,
+        VkDeviceSize offset,
+        VkBuffer countBuffer,
+        VkDeviceSize countBufferOffset,
+        uint32_t maxDrawCount,
+        uint32_t stride,
+        uint32_t doLock);
+    void vkCmdDrawIndexedIndirectCount(
+    VkCommandBuffer commandBuffer,
+        VkBuffer buffer,
+        VkDeviceSize offset,
+        VkBuffer countBuffer,
+        VkDeviceSize countBufferOffset,
+        uint32_t maxDrawCount,
+        uint32_t stride,
+        uint32_t doLock);
+    VkResult vkCreateRenderPass2(
+    VkDevice device,
+        const VkRenderPassCreateInfo2* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkRenderPass* pRenderPass,
+        uint32_t doLock);
+    void vkCmdBeginRenderPass2(
+    VkCommandBuffer commandBuffer,
+        const VkRenderPassBeginInfo* pRenderPassBegin,
+        const VkSubpassBeginInfo* pSubpassBeginInfo,
+        uint32_t doLock);
+    void vkCmdNextSubpass2(
+    VkCommandBuffer commandBuffer,
+        const VkSubpassBeginInfo* pSubpassBeginInfo,
+        const VkSubpassEndInfo* pSubpassEndInfo,
+        uint32_t doLock);
+    void vkCmdEndRenderPass2(
+    VkCommandBuffer commandBuffer,
+        const VkSubpassEndInfo* pSubpassEndInfo,
+        uint32_t doLock);
+    void vkResetQueryPool(
+    VkDevice device,
+        VkQueryPool queryPool,
+        uint32_t firstQuery,
+        uint32_t queryCount,
+        uint32_t doLock);
+    VkResult vkGetSemaphoreCounterValue(
+    VkDevice device,
+        VkSemaphore semaphore,
+        uint64_t* pValue,
+        uint32_t doLock);
+    VkResult vkWaitSemaphores(
+    VkDevice device,
+        const VkSemaphoreWaitInfo* pWaitInfo,
+        uint64_t timeout,
+        uint32_t doLock);
+    VkResult vkSignalSemaphore(
+    VkDevice device,
+        const VkSemaphoreSignalInfo* pSignalInfo,
+        uint32_t doLock);
+    VkDeviceAddress vkGetBufferDeviceAddress(
+    VkDevice device,
+        const VkBufferDeviceAddressInfo* pInfo,
+        uint32_t doLock);
+    uint64_t vkGetBufferOpaqueCaptureAddress(
+    VkDevice device,
+        const VkBufferDeviceAddressInfo* pInfo,
+        uint32_t doLock);
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddress(
+    VkDevice device,
+        const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo,
+        uint32_t doLock);
+#endif
 #ifdef VK_KHR_surface
     void vkDestroySurfaceKHR(
     VkInstance instance,
@@ -1161,19 +1233,6 @@
         wl_display* display,
         uint32_t doLock);
 #endif
-#ifdef VK_KHR_mir_surface
-    VkResult vkCreateMirSurfaceKHR(
-    VkInstance instance,
-        const VkMirSurfaceCreateInfoKHR* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkSurfaceKHR* pSurface,
-        uint32_t doLock);
-    VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR(
-    VkPhysicalDevice physicalDevice,
-        uint32_t queueFamilyIndex,
-        MirConnection* connection,
-        uint32_t doLock);
-#endif
 #ifdef VK_KHR_android_surface
     VkResult vkCreateAndroidSurfaceKHR(
     VkInstance instance,
@@ -1356,6 +1415,8 @@
         const void* pData,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -1379,26 +1440,28 @@
         const void* pData,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
     VkResult vkCreateRenderPass2KHR(
     VkDevice device,
-        const VkRenderPassCreateInfo2KHR* pCreateInfo,
+        const VkRenderPassCreateInfo2* pCreateInfo,
         const VkAllocationCallbacks* pAllocator,
         VkRenderPass* pRenderPass,
         uint32_t doLock);
     void vkCmdBeginRenderPass2KHR(
     VkCommandBuffer commandBuffer,
         const VkRenderPassBeginInfo* pRenderPassBegin,
-        const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
+        const VkSubpassBeginInfo* pSubpassBeginInfo,
         uint32_t doLock);
     void vkCmdNextSubpass2KHR(
     VkCommandBuffer commandBuffer,
-        const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
-        const VkSubpassEndInfoKHR* pSubpassEndInfo,
+        const VkSubpassBeginInfo* pSubpassBeginInfo,
+        const VkSubpassEndInfo* pSubpassEndInfo,
         uint32_t doLock);
     void vkCmdEndRenderPass2KHR(
     VkCommandBuffer commandBuffer,
-        const VkSubpassEndInfoKHR* pSubpassEndInfo,
+        const VkSubpassEndInfo* pSubpassEndInfo,
         uint32_t doLock);
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -1438,6 +1501,27 @@
         int* pFd,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_performance_query
+    VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+    VkPhysicalDevice physicalDevice,
+        uint32_t queueFamilyIndex,
+        uint32_t* pCounterCount,
+        VkPerformanceCounterKHR* pCounters,
+        VkPerformanceCounterDescriptionKHR* pCounterDescriptions,
+        uint32_t doLock);
+    void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
+    VkPhysicalDevice physicalDevice,
+        const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
+        uint32_t* pNumPasses,
+        uint32_t doLock);
+    VkResult vkAcquireProfilingLockKHR(
+    VkDevice device,
+        const VkAcquireProfilingLockInfoKHR* pInfo,
+        uint32_t doLock);
+    void vkReleaseProfilingLockKHR(
+    VkDevice device,
+        uint32_t doLock);
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -1529,6 +1613,8 @@
         const VkBindImageMemoryInfo* pBindInfos,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_portability_subset
+#endif
 #ifdef VK_KHR_maintenance3
     void vkGetDescriptorSetLayoutSupportKHR(
     VkDevice device,
@@ -1556,9 +1642,149 @@
         uint32_t stride,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
 #endif
-#ifdef VK_KHR_shader_float16_int8
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+    VkResult vkGetSemaphoreCounterValueKHR(
+    VkDevice device,
+        VkSemaphore semaphore,
+        uint64_t* pValue,
+        uint32_t doLock);
+    VkResult vkWaitSemaphoresKHR(
+    VkDevice device,
+        const VkSemaphoreWaitInfo* pWaitInfo,
+        uint64_t timeout,
+        uint32_t doLock);
+    VkResult vkSignalSemaphoreKHR(
+    VkDevice device,
+        const VkSemaphoreSignalInfo* pSignalInfo,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+    VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR(
+    VkPhysicalDevice physicalDevice,
+        uint32_t* pFragmentShadingRateCount,
+        VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates,
+        uint32_t doLock);
+    void vkCmdSetFragmentShadingRateKHR(
+    VkCommandBuffer commandBuffer,
+        const VkExtent2D* pFragmentSize,
+        const VkFragmentShadingRateCombinerOpKHR combinerOps[2],
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+    VkDeviceAddress vkGetBufferDeviceAddressKHR(
+    VkDevice device,
+        const VkBufferDeviceAddressInfo* pInfo,
+        uint32_t doLock);
+    uint64_t vkGetBufferOpaqueCaptureAddressKHR(
+    VkDevice device,
+        const VkBufferDeviceAddressInfo* pInfo,
+        uint32_t doLock);
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR(
+    VkDevice device,
+        const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_deferred_host_operations
+    VkResult vkCreateDeferredOperationKHR(
+    VkDevice device,
+        const VkAllocationCallbacks* pAllocator,
+        VkDeferredOperationKHR* pDeferredOperation,
+        uint32_t doLock);
+    void vkDestroyDeferredOperationKHR(
+    VkDevice device,
+        VkDeferredOperationKHR operation,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    uint32_t vkGetDeferredOperationMaxConcurrencyKHR(
+    VkDevice device,
+        VkDeferredOperationKHR operation,
+        uint32_t doLock);
+    VkResult vkGetDeferredOperationResultKHR(
+    VkDevice device,
+        VkDeferredOperationKHR operation,
+        uint32_t doLock);
+    VkResult vkDeferredOperationJoinKHR(
+    VkDevice device,
+        VkDeferredOperationKHR operation,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+    VkResult vkGetPipelineExecutablePropertiesKHR(
+    VkDevice device,
+        const VkPipelineInfoKHR* pPipelineInfo,
+        uint32_t* pExecutableCount,
+        VkPipelineExecutablePropertiesKHR* pProperties,
+        uint32_t doLock);
+    VkResult vkGetPipelineExecutableStatisticsKHR(
+    VkDevice device,
+        const VkPipelineExecutableInfoKHR* pExecutableInfo,
+        uint32_t* pStatisticCount,
+        VkPipelineExecutableStatisticKHR* pStatistics,
+        uint32_t doLock);
+    VkResult vkGetPipelineExecutableInternalRepresentationsKHR(
+    VkDevice device,
+        const VkPipelineExecutableInfoKHR* pExecutableInfo,
+        uint32_t* pInternalRepresentationCount,
+        VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_pipeline_library
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+    void vkCmdCopyBuffer2KHR(
+    VkCommandBuffer commandBuffer,
+        const VkCopyBufferInfo2KHR* pCopyBufferInfo,
+        uint32_t doLock);
+    void vkCmdCopyImage2KHR(
+    VkCommandBuffer commandBuffer,
+        const VkCopyImageInfo2KHR* pCopyImageInfo,
+        uint32_t doLock);
+    void vkCmdCopyBufferToImage2KHR(
+    VkCommandBuffer commandBuffer,
+        const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo,
+        uint32_t doLock);
+    void vkCmdCopyImageToBuffer2KHR(
+    VkCommandBuffer commandBuffer,
+        const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo,
+        uint32_t doLock);
+    void vkCmdBlitImage2KHR(
+    VkCommandBuffer commandBuffer,
+        const VkBlitImageInfo2KHR* pBlitImageInfo,
+        uint32_t doLock);
+    void vkCmdResolveImage2KHR(
+    VkCommandBuffer commandBuffer,
+        const VkResolveImageInfo2KHR* pResolveImageInfo,
+        uint32_t doLock);
 #endif
 #ifdef VK_ANDROID_native_buffer
     VkResult vkGetSwapchainGrallocUsageANDROID(
@@ -1642,6 +1868,63 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 #endif
+#ifdef VK_EXT_transform_feedback
+    void vkCmdBindTransformFeedbackBuffersEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t firstBinding,
+        uint32_t bindingCount,
+        const VkBuffer* pBuffers,
+        const VkDeviceSize* pOffsets,
+        const VkDeviceSize* pSizes,
+        uint32_t doLock);
+    void vkCmdBeginTransformFeedbackEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t firstCounterBuffer,
+        uint32_t counterBufferCount,
+        const VkBuffer* pCounterBuffers,
+        const VkDeviceSize* pCounterBufferOffsets,
+        uint32_t doLock);
+    void vkCmdEndTransformFeedbackEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t firstCounterBuffer,
+        uint32_t counterBufferCount,
+        const VkBuffer* pCounterBuffers,
+        const VkDeviceSize* pCounterBufferOffsets,
+        uint32_t doLock);
+    void vkCmdBeginQueryIndexedEXT(
+    VkCommandBuffer commandBuffer,
+        VkQueryPool queryPool,
+        uint32_t query,
+        VkQueryControlFlags flags,
+        uint32_t index,
+        uint32_t doLock);
+    void vkCmdEndQueryIndexedEXT(
+    VkCommandBuffer commandBuffer,
+        VkQueryPool queryPool,
+        uint32_t query,
+        uint32_t index,
+        uint32_t doLock);
+    void vkCmdDrawIndirectByteCountEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t instanceCount,
+        uint32_t firstInstance,
+        VkBuffer counterBuffer,
+        VkDeviceSize counterBufferOffset,
+        uint32_t counterOffset,
+        uint32_t vertexStride,
+        uint32_t doLock);
+#endif
+#ifdef VK_NVX_image_view_handle
+    uint32_t vkGetImageViewHandleNVX(
+    VkDevice device,
+        const VkImageViewHandleInfoNVX* pInfo,
+        uint32_t doLock);
+    VkResult vkGetImageViewAddressNVX(
+    VkDevice device,
+        VkImageView imageView,
+        VkImageViewAddressPropertiesNVX* pProperties,
+        uint32_t doLock);
+#endif
 #ifdef VK_AMD_draw_indirect_count
     void vkCmdDrawIndirectCountAMD(
     VkCommandBuffer commandBuffer,
@@ -1682,6 +1965,16 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+    VkResult vkCreateStreamDescriptorSurfaceGGP(
+    VkInstance instance,
+        const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkSurfaceKHR* pSurface,
+        uint32_t doLock);
+#endif
+#ifdef VK_NV_corner_sampled_image
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -1722,6 +2015,10 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+#endif
+#ifdef VK_EXT_astc_decode_mode
+#endif
 #ifdef VK_EXT_conditional_rendering
     void vkCmdBeginConditionalRenderingEXT(
     VkCommandBuffer commandBuffer,
@@ -1731,57 +2028,6 @@
     VkCommandBuffer commandBuffer,
         uint32_t doLock);
 #endif
-#ifdef VK_NVX_device_generated_commands
-    void vkCmdProcessCommandsNVX(
-    VkCommandBuffer commandBuffer,
-        const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo,
-        uint32_t doLock);
-    void vkCmdReserveSpaceForCommandsNVX(
-    VkCommandBuffer commandBuffer,
-        const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo,
-        uint32_t doLock);
-    VkResult vkCreateIndirectCommandsLayoutNVX(
-    VkDevice device,
-        const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout,
-        uint32_t doLock);
-    void vkDestroyIndirectCommandsLayoutNVX(
-    VkDevice device,
-        VkIndirectCommandsLayoutNVX indirectCommandsLayout,
-        const VkAllocationCallbacks* pAllocator,
-        uint32_t doLock);
-    VkResult vkCreateObjectTableNVX(
-    VkDevice device,
-        const VkObjectTableCreateInfoNVX* pCreateInfo,
-        const VkAllocationCallbacks* pAllocator,
-        VkObjectTableNVX* pObjectTable,
-        uint32_t doLock);
-    void vkDestroyObjectTableNVX(
-    VkDevice device,
-        VkObjectTableNVX objectTable,
-        const VkAllocationCallbacks* pAllocator,
-        uint32_t doLock);
-    VkResult vkRegisterObjectsNVX(
-    VkDevice device,
-        VkObjectTableNVX objectTable,
-        uint32_t objectCount,
-        const VkObjectTableEntryNVX* const* ppObjectTableEntries,
-        const uint32_t* pObjectIndices,
-        uint32_t doLock);
-    VkResult vkUnregisterObjectsNVX(
-    VkDevice device,
-        VkObjectTableNVX objectTable,
-        uint32_t objectCount,
-        const VkObjectEntryTypeNVX* pObjectEntryTypes,
-        const uint32_t* pObjectIndices,
-        uint32_t doLock);
-    void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
-    VkPhysicalDevice physicalDevice,
-        VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
-        VkDeviceGeneratedCommandsLimitsNVX* pLimits,
-        uint32_t doLock);
-#endif
 #ifdef VK_NV_clip_space_w_scaling
     void vkCmdSetViewportWScalingNV(
     VkCommandBuffer commandBuffer,
@@ -1875,6 +2121,8 @@
 #endif
 #ifdef VK_EXT_conservative_rasterization
 #endif
+#ifdef VK_EXT_depth_clip_enable
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -1901,6 +2149,32 @@
         VkSurfaceKHR* pSurface,
         uint32_t doLock);
 #endif
+#ifdef VK_MVK_moltenvk
+    void vkGetMTLDeviceMVK(
+    VkPhysicalDevice physicalDevice,
+        void** pMTLDevice,
+        uint32_t doLock);
+    VkResult vkSetMTLTextureMVK(
+    VkImage image,
+        void* mtlTexture,
+        uint32_t doLock);
+    void vkGetMTLTextureMVK(
+    VkImage image,
+        void** pMTLTexture,
+        uint32_t doLock);
+    void vkGetMTLBufferMVK(
+    VkBuffer buffer,
+        void** pMTLBuffer,
+        uint32_t doLock);
+    VkResult vkUseIOSurfaceMVK(
+    VkImage image,
+        void* ioSurface,
+        uint32_t doLock);
+    void vkGetIOSurfaceMVK(
+    VkImage image,
+        void** pIOSurface,
+        uint32_t doLock);
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
@@ -1974,6 +2248,8 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -1995,8 +2271,17 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+    VkResult vkGetImageDrmFormatModifierPropertiesEXT(
+    VkDevice device,
+        VkImage image,
+        VkImageDrmFormatModifierPropertiesEXT* pProperties,
+        uint32_t doLock);
+#endif
 #ifdef VK_EXT_validation_cache
     VkResult vkCreateValidationCacheEXT(
     VkDevice device,
@@ -2026,6 +2311,131 @@
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+    void vkCmdBindShadingRateImageNV(
+    VkCommandBuffer commandBuffer,
+        VkImageView imageView,
+        VkImageLayout imageLayout,
+        uint32_t doLock);
+    void vkCmdSetViewportShadingRatePaletteNV(
+    VkCommandBuffer commandBuffer,
+        uint32_t firstViewport,
+        uint32_t viewportCount,
+        const VkShadingRatePaletteNV* pShadingRatePalettes,
+        uint32_t doLock);
+    void vkCmdSetCoarseSampleOrderNV(
+    VkCommandBuffer commandBuffer,
+        VkCoarseSampleOrderTypeNV sampleOrderType,
+        uint32_t customSampleOrderCount,
+        const VkCoarseSampleOrderCustomNV* pCustomSampleOrders,
+        uint32_t doLock);
+#endif
+#ifdef VK_NV_ray_tracing
+    VkResult vkCreateAccelerationStructureNV(
+    VkDevice device,
+        const VkAccelerationStructureCreateInfoNV* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkAccelerationStructureNV* pAccelerationStructure,
+        uint32_t doLock);
+    void vkDestroyAccelerationStructureNV(
+    VkDevice device,
+        VkAccelerationStructureNV accelerationStructure,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    void vkGetAccelerationStructureMemoryRequirementsNV(
+    VkDevice device,
+        const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
+        VkMemoryRequirements2KHR* pMemoryRequirements,
+        uint32_t doLock);
+    VkResult vkBindAccelerationStructureMemoryNV(
+    VkDevice device,
+        uint32_t bindInfoCount,
+        const VkBindAccelerationStructureMemoryInfoNV* pBindInfos,
+        uint32_t doLock);
+    void vkCmdBuildAccelerationStructureNV(
+    VkCommandBuffer commandBuffer,
+        const VkAccelerationStructureInfoNV* pInfo,
+        VkBuffer instanceData,
+        VkDeviceSize instanceOffset,
+        VkBool32 update,
+        VkAccelerationStructureNV dst,
+        VkAccelerationStructureNV src,
+        VkBuffer scratch,
+        VkDeviceSize scratchOffset,
+        uint32_t doLock);
+    void vkCmdCopyAccelerationStructureNV(
+    VkCommandBuffer commandBuffer,
+        VkAccelerationStructureNV dst,
+        VkAccelerationStructureNV src,
+        VkCopyAccelerationStructureModeKHR mode,
+        uint32_t doLock);
+    void vkCmdTraceRaysNV(
+    VkCommandBuffer commandBuffer,
+        VkBuffer raygenShaderBindingTableBuffer,
+        VkDeviceSize raygenShaderBindingOffset,
+        VkBuffer missShaderBindingTableBuffer,
+        VkDeviceSize missShaderBindingOffset,
+        VkDeviceSize missShaderBindingStride,
+        VkBuffer hitShaderBindingTableBuffer,
+        VkDeviceSize hitShaderBindingOffset,
+        VkDeviceSize hitShaderBindingStride,
+        VkBuffer callableShaderBindingTableBuffer,
+        VkDeviceSize callableShaderBindingOffset,
+        VkDeviceSize callableShaderBindingStride,
+        uint32_t width,
+        uint32_t height,
+        uint32_t depth,
+        uint32_t doLock);
+    VkResult vkCreateRayTracingPipelinesNV(
+    VkDevice device,
+        VkPipelineCache pipelineCache,
+        uint32_t createInfoCount,
+        const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
+        const VkAllocationCallbacks* pAllocator,
+        VkPipeline* pPipelines,
+        uint32_t doLock);
+    VkResult vkGetRayTracingShaderGroupHandlesKHR(
+    VkDevice device,
+        VkPipeline pipeline,
+        uint32_t firstGroup,
+        uint32_t groupCount,
+        size_t dataSize,
+        void* pData,
+        uint32_t doLock);
+    VkResult vkGetRayTracingShaderGroupHandlesNV(
+    VkDevice device,
+        VkPipeline pipeline,
+        uint32_t firstGroup,
+        uint32_t groupCount,
+        size_t dataSize,
+        void* pData,
+        uint32_t doLock);
+    VkResult vkGetAccelerationStructureHandleNV(
+    VkDevice device,
+        VkAccelerationStructureNV accelerationStructure,
+        size_t dataSize,
+        void* pData,
+        uint32_t doLock);
+    void vkCmdWriteAccelerationStructuresPropertiesNV(
+    VkCommandBuffer commandBuffer,
+        uint32_t accelerationStructureCount,
+        const VkAccelerationStructureNV* pAccelerationStructures,
+        VkQueryType queryType,
+        VkQueryPool queryPool,
+        uint32_t firstQuery,
+        uint32_t doLock);
+    VkResult vkCompileDeferredNV(
+    VkDevice device,
+        VkPipeline pipeline,
+        uint32_t shader,
+        uint32_t doLock);
+#endif
+#ifdef VK_NV_representative_fragment_test
+#endif
+#ifdef VK_EXT_filter_cubic
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 #endif
 #ifdef VK_EXT_external_memory_host
@@ -2045,12 +2455,71 @@
         uint32_t marker,
         uint32_t doLock);
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+    VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
+    VkPhysicalDevice physicalDevice,
+        uint32_t* pTimeDomainCount,
+        VkTimeDomainEXT* pTimeDomains,
+        uint32_t doLock);
+    VkResult vkGetCalibratedTimestampsEXT(
+    VkDevice device,
+        uint32_t timestampCount,
+        const VkCalibratedTimestampInfoEXT* pTimestampInfos,
+        uint64_t* pTimestamps,
+        uint64_t* pMaxDeviation,
+        uint32_t doLock);
+#endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 #endif
+#ifdef VK_GGP_frame_token
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+#endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+#endif
+#ifdef VK_NV_mesh_shader
+    void vkCmdDrawMeshTasksNV(
+    VkCommandBuffer commandBuffer,
+        uint32_t taskCount,
+        uint32_t firstTask,
+        uint32_t doLock);
+    void vkCmdDrawMeshTasksIndirectNV(
+    VkCommandBuffer commandBuffer,
+        VkBuffer buffer,
+        VkDeviceSize offset,
+        uint32_t drawCount,
+        uint32_t stride,
+        uint32_t doLock);
+    void vkCmdDrawMeshTasksIndirectCountNV(
+    VkCommandBuffer commandBuffer,
+        VkBuffer buffer,
+        VkDeviceSize offset,
+        VkBuffer countBuffer,
+        VkDeviceSize countBufferOffset,
+        uint32_t maxDrawCount,
+        uint32_t stride,
+        uint32_t doLock);
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+#endif
+#ifdef VK_NV_shader_image_footprint
+#endif
+#ifdef VK_NV_scissor_exclusive
+    void vkCmdSetExclusiveScissorNV(
+    VkCommandBuffer commandBuffer,
+        uint32_t firstExclusiveScissor,
+        uint32_t exclusiveScissorCount,
+        const VkRect2D* pExclusiveScissors,
+        uint32_t doLock);
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
     void vkCmdSetCheckpointNV(
     VkCommandBuffer commandBuffer,
@@ -2062,11 +2531,70 @@
         VkCheckpointDataNV* pCheckpointData,
         uint32_t doLock);
 #endif
-#ifdef VK_GOOGLE_address_space
-    VkResult vkMapMemoryIntoAddressSpaceGOOGLE(
+#ifdef VK_INTEL_shader_integer_functions2
+#endif
+#ifdef VK_INTEL_performance_query
+    VkResult vkInitializePerformanceApiINTEL(
     VkDevice device,
-        VkDeviceMemory memory,
-        uint64_t* pAddress,
+        const VkInitializePerformanceApiInfoINTEL* pInitializeInfo,
+        uint32_t doLock);
+    void vkUninitializePerformanceApiINTEL(
+    VkDevice device,
+        uint32_t doLock);
+    VkResult vkCmdSetPerformanceMarkerINTEL(
+    VkCommandBuffer commandBuffer,
+        const VkPerformanceMarkerInfoINTEL* pMarkerInfo,
+        uint32_t doLock);
+    VkResult vkCmdSetPerformanceStreamMarkerINTEL(
+    VkCommandBuffer commandBuffer,
+        const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo,
+        uint32_t doLock);
+    VkResult vkCmdSetPerformanceOverrideINTEL(
+    VkCommandBuffer commandBuffer,
+        const VkPerformanceOverrideInfoINTEL* pOverrideInfo,
+        uint32_t doLock);
+    VkResult vkAcquirePerformanceConfigurationINTEL(
+    VkDevice device,
+        const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
+        VkPerformanceConfigurationINTEL* pConfiguration,
+        uint32_t doLock);
+    VkResult vkReleasePerformanceConfigurationINTEL(
+    VkDevice device,
+        VkPerformanceConfigurationINTEL configuration,
+        uint32_t doLock);
+    VkResult vkQueueSetPerformanceConfigurationINTEL(
+    VkQueue queue,
+        VkPerformanceConfigurationINTEL configuration,
+        uint32_t doLock);
+    VkResult vkGetPerformanceParameterINTEL(
+    VkDevice device,
+        VkPerformanceParameterTypeINTEL parameter,
+        VkPerformanceValueINTEL* pValue,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_pci_bus_info
+#endif
+#ifdef VK_AMD_display_native_hdr
+    void vkSetLocalDimmingAMD(
+    VkDevice device,
+        VkSwapchainKHR swapChain,
+        VkBool32 localDimmingEnable,
+        uint32_t doLock);
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+    VkResult vkCreateImagePipeSurfaceFUCHSIA(
+    VkInstance instance,
+        const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkSurfaceKHR* pSurface,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_metal_surface
+    VkResult vkCreateMetalSurfaceEXT(
+    VkInstance instance,
+        const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkSurfaceKHR* pSurface,
         uint32_t doLock);
 #endif
 #ifdef VK_GOOGLE_color_buffer
@@ -2081,7 +2609,284 @@
         uint32_t colorBuffer,
         uint32_t doLock);
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+#endif
+#ifdef VK_GOOGLE_hlsl_functionality1
+#endif
+#ifdef VK_GOOGLE_decorate_string
+#endif
+#ifdef VK_EXT_subgroup_size_control
+#endif
+#ifdef VK_AMD_shader_core_properties2
+#endif
+#ifdef VK_AMD_device_coherent_memory
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+#endif
+#ifdef VK_EXT_memory_budget
+#endif
+#ifdef VK_EXT_memory_priority
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+#endif
+#ifdef VK_EXT_buffer_device_address
+    VkDeviceAddress vkGetBufferDeviceAddressEXT(
+    VkDevice device,
+        const VkBufferDeviceAddressInfo* pInfo,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_tooling_info
+    VkResult vkGetPhysicalDeviceToolPropertiesEXT(
+    VkPhysicalDevice physicalDevice,
+        uint32_t* pToolCount,
+        VkPhysicalDeviceToolPropertiesEXT* pToolProperties,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+#endif
+#ifdef VK_NV_cooperative_matrix
+    VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VkPhysicalDevice physicalDevice,
+        uint32_t* pPropertyCount,
+        VkCooperativeMatrixPropertiesNV* pProperties,
+        uint32_t doLock);
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+    VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+    VkPhysicalDevice physicalDevice,
+        uint32_t* pCombinationCount,
+        VkFramebufferMixedSamplesCombinationNV* pCombinations,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+    VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT(
+    VkPhysicalDevice physicalDevice,
+        const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
+        uint32_t* pPresentModeCount,
+        VkPresentModeKHR* pPresentModes,
+        uint32_t doLock);
+    VkResult vkAcquireFullScreenExclusiveModeEXT(
+    VkDevice device,
+        VkSwapchainKHR swapchain,
+        uint32_t doLock);
+    VkResult vkReleaseFullScreenExclusiveModeEXT(
+    VkDevice device,
+        VkSwapchainKHR swapchain,
+        uint32_t doLock);
+    VkResult vkGetDeviceGroupSurfacePresentModes2EXT(
+    VkDevice device,
+        const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
+        VkDeviceGroupPresentModeFlagsKHR* pModes,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_headless_surface
+    VkResult vkCreateHeadlessSurfaceEXT(
+    VkInstance instance,
+        const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkSurfaceKHR* pSurface,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_line_rasterization
+    void vkCmdSetLineStippleEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t lineStippleFactor,
+        uint16_t lineStipplePattern,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_shader_atomic_float
+#endif
+#ifdef VK_EXT_host_query_reset
+    void vkResetQueryPoolEXT(
+    VkDevice device,
+        VkQueryPool queryPool,
+        uint32_t firstQuery,
+        uint32_t queryCount,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_index_type_uint8
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+    void vkCmdSetCullModeEXT(
+    VkCommandBuffer commandBuffer,
+        VkCullModeFlags cullMode,
+        uint32_t doLock);
+    void vkCmdSetFrontFaceEXT(
+    VkCommandBuffer commandBuffer,
+        VkFrontFace frontFace,
+        uint32_t doLock);
+    void vkCmdSetPrimitiveTopologyEXT(
+    VkCommandBuffer commandBuffer,
+        VkPrimitiveTopology primitiveTopology,
+        uint32_t doLock);
+    void vkCmdSetViewportWithCountEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t viewportCount,
+        const VkViewport* pViewports,
+        uint32_t doLock);
+    void vkCmdSetScissorWithCountEXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t scissorCount,
+        const VkRect2D* pScissors,
+        uint32_t doLock);
+    void vkCmdBindVertexBuffers2EXT(
+    VkCommandBuffer commandBuffer,
+        uint32_t firstBinding,
+        uint32_t bindingCount,
+        const VkBuffer* pBuffers,
+        const VkDeviceSize* pOffsets,
+        const VkDeviceSize* pSizes,
+        const VkDeviceSize* pStrides,
+        uint32_t doLock);
+    void vkCmdSetDepthTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+        VkBool32 depthTestEnable,
+        uint32_t doLock);
+    void vkCmdSetDepthWriteEnableEXT(
+    VkCommandBuffer commandBuffer,
+        VkBool32 depthWriteEnable,
+        uint32_t doLock);
+    void vkCmdSetDepthCompareOpEXT(
+    VkCommandBuffer commandBuffer,
+        VkCompareOp depthCompareOp,
+        uint32_t doLock);
+    void vkCmdSetDepthBoundsTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+        VkBool32 depthBoundsTestEnable,
+        uint32_t doLock);
+    void vkCmdSetStencilTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+        VkBool32 stencilTestEnable,
+        uint32_t doLock);
+    void vkCmdSetStencilOpEXT(
+    VkCommandBuffer commandBuffer,
+        VkStencilFaceFlags faceMask,
+        VkStencilOp failOp,
+        VkStencilOp passOp,
+        VkStencilOp depthFailOp,
+        VkCompareOp compareOp,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+#endif
+#ifdef VK_NV_device_generated_commands
+    void vkGetGeneratedCommandsMemoryRequirementsNV(
+    VkDevice device,
+        const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
+        VkMemoryRequirements2* pMemoryRequirements,
+        uint32_t doLock);
+    void vkCmdPreprocessGeneratedCommandsNV(
+    VkCommandBuffer commandBuffer,
+        const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo,
+        uint32_t doLock);
+    void vkCmdExecuteGeneratedCommandsNV(
+    VkCommandBuffer commandBuffer,
+        VkBool32 isPreprocessed,
+        const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo,
+        uint32_t doLock);
+    void vkCmdBindPipelineShaderGroupNV(
+    VkCommandBuffer commandBuffer,
+        VkPipelineBindPoint pipelineBindPoint,
+        VkPipeline pipeline,
+        uint32_t groupIndex,
+        uint32_t doLock);
+    VkResult vkCreateIndirectCommandsLayoutNV(
+    VkDevice device,
+        const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkIndirectCommandsLayoutNV* pIndirectCommandsLayout,
+        uint32_t doLock);
+    void vkDestroyIndirectCommandsLayoutNV(
+    VkDevice device,
+        VkIndirectCommandsLayoutNV indirectCommandsLayout,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+#endif
+#ifdef VK_QCOM_render_pass_transform
+#endif
+#ifdef VK_EXT_device_memory_report
+#endif
+#ifdef VK_EXT_robustness2
+#endif
+#ifdef VK_EXT_custom_border_color
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+    VkResult vkCreatePrivateDataSlotEXT(
+    VkDevice device,
+        const VkPrivateDataSlotCreateInfoEXT* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkPrivateDataSlotEXT* pPrivateDataSlot,
+        uint32_t doLock);
+    void vkDestroyPrivateDataSlotEXT(
+    VkDevice device,
+        VkPrivateDataSlotEXT privateDataSlot,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    VkResult vkSetPrivateDataEXT(
+    VkDevice device,
+        VkObjectType objectType,
+        uint64_t objectHandle,
+        VkPrivateDataSlotEXT privateDataSlot,
+        uint64_t data,
+        uint32_t doLock);
+    void vkGetPrivateDataEXT(
+    VkDevice device,
+        VkObjectType objectType,
+        uint64_t objectHandle,
+        VkPrivateDataSlotEXT privateDataSlot,
+        uint64_t* pData,
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+#endif
+#ifdef VK_NV_device_diagnostics_config
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+    void vkCmdSetFragmentShadingRateEnumNV(
+    VkCommandBuffer commandBuffer,
+        VkFragmentShadingRateNV shadingRate,
+        const VkFragmentShadingRateCombinerOpKHR combinerOps[2],
+        uint32_t doLock);
+#endif
+#ifdef VK_EXT_fragment_density_map2
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+#endif
+#ifdef VK_EXT_image_robustness
+#endif
+#ifdef VK_EXT_4444_formats
+#endif
+#ifdef VK_EXT_directfb_surface
+    VkResult vkCreateDirectFBSurfaceEXT(
+    VkInstance instance,
+        const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkSurfaceKHR* pSurface,
+        uint32_t doLock);
+    VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
+    VkPhysicalDevice physicalDevice,
+        uint32_t queueFamilyIndex,
+        IDirectFB* dfb,
+        uint32_t doLock);
+#endif
+#ifdef VK_GOOGLE_gfxstream
+    VkResult vkMapMemoryIntoAddressSpaceGOOGLE(
+    VkDevice device,
+        VkDeviceMemory memory,
+        uint64_t* pAddress,
+        uint32_t doLock);
     void vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
     VkDevice device,
         VkDescriptorSet descriptorSet,
@@ -2096,8 +2901,6 @@
         const VkDescriptorBufferInfo* pBufferInfos,
         const VkBufferView* pBufferViews,
         uint32_t doLock);
-#endif
-#ifdef VK_GOOGLE_async_command_buffers
     void vkBeginCommandBufferAsyncGOOGLE(
     VkCommandBuffer commandBuffer,
         const VkCommandBufferBeginInfo* pBeginInfo,
@@ -2114,8 +2917,6 @@
         uint32_t needHostSync,
         uint32_t sequenceNumber,
         uint32_t doLock);
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
     VkResult vkCreateImageWithRequirementsGOOGLE(
     VkDevice device,
         const VkImageCreateInfo* pCreateInfo,
@@ -2130,8 +2931,6 @@
         VkBuffer* pBuffer,
         VkMemoryRequirements* pMemoryRequirements,
         uint32_t doLock);
-#endif
-#ifdef VK_GOOGLE_address_space_info
     VkResult vkGetMemoryHostAddressInfoGOOGLE(
     VkDevice device,
         VkDeviceMemory memory,
@@ -2139,15 +2938,11 @@
         uint64_t* pSize,
         uint64_t* pHostmemId,
         uint32_t doLock);
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
     VkResult vkFreeMemorySyncGOOGLE(
     VkDevice device,
         VkDeviceMemory memory,
         const VkAllocationCallbacks* pAllocator,
         uint32_t doLock);
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
     void vkQueueHostSyncGOOGLE(
     VkQueue queue,
         uint32_t needHostSync,
@@ -2168,42 +2963,12 @@
         const VkBindSparseInfo* pBindInfo,
         VkFence fence,
         uint32_t doLock);
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
     void vkGetLinearImageLayoutGOOGLE(
     VkDevice device,
         VkFormat format,
         VkDeviceSize* pOffset,
         VkDeviceSize* pRowPitchAlignment,
         uint32_t doLock);
-#endif
-#ifdef VK_MVK_moltenvk
-    void vkGetMTLDeviceMVK(
-    VkPhysicalDevice physicalDevice,
-        void** pMTLDevice,
-        uint32_t doLock);
-    VkResult vkSetMTLTextureMVK(
-    VkImage image,
-        void* mtlTexture,
-        uint32_t doLock);
-    void vkGetMTLTextureMVK(
-    VkImage image,
-        void** pMTLTexture,
-        uint32_t doLock);
-    void vkGetMTLBufferMVK(
-    VkBuffer buffer,
-        void** pMTLBuffer,
-        uint32_t doLock);
-    VkResult vkUseIOSurfaceMVK(
-    VkImage image,
-        void* ioSurface,
-        uint32_t doLock);
-    void vkGetIOSurfaceMVK(
-    VkImage image,
-        void** pIOSurface,
-        uint32_t doLock);
-#endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
     void vkQueueFlushCommandsGOOGLE(
     VkQueue queue,
         VkCommandBuffer commandBuffer,
@@ -2211,6 +2976,149 @@
         const void* pData,
         uint32_t doLock);
 #endif
+#ifdef VK_KHR_acceleration_structure
+    VkResult vkCreateAccelerationStructureKHR(
+    VkDevice device,
+        const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
+        const VkAllocationCallbacks* pAllocator,
+        VkAccelerationStructureKHR* pAccelerationStructure,
+        uint32_t doLock);
+    void vkDestroyAccelerationStructureKHR(
+    VkDevice device,
+        VkAccelerationStructureKHR accelerationStructure,
+        const VkAllocationCallbacks* pAllocator,
+        uint32_t doLock);
+    void vkCmdBuildAccelerationStructuresKHR(
+    VkCommandBuffer commandBuffer,
+        uint32_t infoCount,
+        const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+        const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos,
+        uint32_t doLock);
+    void vkCmdBuildAccelerationStructuresIndirectKHR(
+    VkCommandBuffer commandBuffer,
+        uint32_t infoCount,
+        const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+        const VkDeviceAddress* pIndirectDeviceAddresses,
+        const uint32_t* pIndirectStrides,
+        const uint32_t* const* ppMaxPrimitiveCounts,
+        uint32_t doLock);
+    VkResult vkBuildAccelerationStructuresKHR(
+    VkDevice device,
+        VkDeferredOperationKHR deferredOperation,
+        uint32_t infoCount,
+        const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+        const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos,
+        uint32_t doLock);
+    VkResult vkCopyAccelerationStructureKHR(
+    VkDevice device,
+        VkDeferredOperationKHR deferredOperation,
+        const VkCopyAccelerationStructureInfoKHR* pInfo,
+        uint32_t doLock);
+    VkResult vkCopyAccelerationStructureToMemoryKHR(
+    VkDevice device,
+        VkDeferredOperationKHR deferredOperation,
+        const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo,
+        uint32_t doLock);
+    VkResult vkCopyMemoryToAccelerationStructureKHR(
+    VkDevice device,
+        VkDeferredOperationKHR deferredOperation,
+        const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo,
+        uint32_t doLock);
+    VkResult vkWriteAccelerationStructuresPropertiesKHR(
+    VkDevice device,
+        uint32_t accelerationStructureCount,
+        const VkAccelerationStructureKHR* pAccelerationStructures,
+        VkQueryType queryType,
+        size_t dataSize,
+        void* pData,
+        size_t stride,
+        uint32_t doLock);
+    void vkCmdCopyAccelerationStructureKHR(
+    VkCommandBuffer commandBuffer,
+        const VkCopyAccelerationStructureInfoKHR* pInfo,
+        uint32_t doLock);
+    void vkCmdCopyAccelerationStructureToMemoryKHR(
+    VkCommandBuffer commandBuffer,
+        const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo,
+        uint32_t doLock);
+    void vkCmdCopyMemoryToAccelerationStructureKHR(
+    VkCommandBuffer commandBuffer,
+        const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo,
+        uint32_t doLock);
+    VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR(
+    VkDevice device,
+        const VkAccelerationStructureDeviceAddressInfoKHR* pInfo,
+        uint32_t doLock);
+    void vkCmdWriteAccelerationStructuresPropertiesKHR(
+    VkCommandBuffer commandBuffer,
+        uint32_t accelerationStructureCount,
+        const VkAccelerationStructureKHR* pAccelerationStructures,
+        VkQueryType queryType,
+        VkQueryPool queryPool,
+        uint32_t firstQuery,
+        uint32_t doLock);
+    void vkGetDeviceAccelerationStructureCompatibilityKHR(
+    VkDevice device,
+        const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
+        VkAccelerationStructureCompatibilityKHR* pCompatibility,
+        uint32_t doLock);
+    void vkGetAccelerationStructureBuildSizesKHR(
+    VkDevice device,
+        VkAccelerationStructureBuildTypeKHR buildType,
+        const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
+        const uint32_t* pMaxPrimitiveCounts,
+        VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+    void vkCmdTraceRaysKHR(
+    VkCommandBuffer commandBuffer,
+        const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+        const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+        const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+        const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+        uint32_t width,
+        uint32_t height,
+        uint32_t depth,
+        uint32_t doLock);
+    VkResult vkCreateRayTracingPipelinesKHR(
+    VkDevice device,
+        VkDeferredOperationKHR deferredOperation,
+        VkPipelineCache pipelineCache,
+        uint32_t createInfoCount,
+        const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
+        const VkAllocationCallbacks* pAllocator,
+        VkPipeline* pPipelines,
+        uint32_t doLock);
+    VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+    VkDevice device,
+        VkPipeline pipeline,
+        uint32_t firstGroup,
+        uint32_t groupCount,
+        size_t dataSize,
+        void* pData,
+        uint32_t doLock);
+    void vkCmdTraceRaysIndirectKHR(
+    VkCommandBuffer commandBuffer,
+        const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+        const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+        const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+        const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+        VkDeviceAddress indirectDeviceAddress,
+        uint32_t doLock);
+    VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR(
+    VkDevice device,
+        VkPipeline pipeline,
+        uint32_t group,
+        VkShaderGroupShaderKHR groupShader,
+        uint32_t doLock);
+    void vkCmdSetRayTracingPipelineStackSizeKHR(
+    VkCommandBuffer commandBuffer,
+        uint32_t pipelineStackSize,
+        uint32_t doLock);
+#endif
+#ifdef VK_KHR_ray_query
+#endif
 
 private:
     class Impl;
diff --git a/system/vulkan_enc/VulkanHandles.h b/system/vulkan_enc/VulkanHandles.h
index 9341085..a2993a2 100644
--- a/system/vulkan_enc/VulkanHandles.h
+++ b/system/vulkan_enc/VulkanHandles.h
@@ -38,6 +38,39 @@
 
 #endif // VK_NVX_device_generated_commands
 
+#ifdef VK_NV_device_generated_commands
+
+#define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_DEVICE_GENERATED_COMMANDS(f) \
+    f(VkIndirectCommandsLayoutNV) \
+
+#else
+
+#define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_DEVICE_GENERATED_COMMANDS(f)
+
+#endif // VK_NV_device_generated_commands
+
+#ifdef VK_NV_ray_tracing
+
+#define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_RAY_TRACING(f) \
+    f(VkAccelerationStructureNV) \
+
+#else
+
+#define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_RAY_TRACING(f)
+
+#endif // VK_NV_ray_tracing
+
+#ifdef VK_KHR_acceleration_structure
+
+#define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_KHR_ACCELERATION_STRUCTURE(f) \
+    f(VkAccelerationStructureKHR) \
+
+#else
+
+#define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_KHR_ACCELERATION_STRUCTURE(f)
+
+#endif // VK_KHR_acceleration_structure
+
 #ifdef VK_USE_PLATFORM_FUCHSIA
 
 #define __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_FUCHSIA(f) \
@@ -69,7 +102,10 @@
     f(VkValidationCacheEXT) \
     f(VkDebugReportCallbackEXT) \
     f(VkDebugUtilsMessengerEXT) \
-    __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_DEVICE_GENERATED_COMMANDS(f)
+    __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NVX_DEVICE_GENERATED_COMMANDS(f) \
+    __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_DEVICE_GENERATED_COMMANDS(f) \
+    __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_NV_RAY_TRACING(f) \
+    __GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES_KHR_ACCELERATION_STRUCTURE(f) \
 
 #define GOLDFISH_VK_LIST_NON_DISPATCHABLE_HANDLE_TYPES(f) \
     f(VkDeviceMemory) \
diff --git a/system/vulkan_enc/func_table.cpp b/system/vulkan_enc/func_table.cpp
index 588ea53..15e7ba8 100644
--- a/system/vulkan_enc/func_table.cpp
+++ b/system/vulkan_enc/func_table.cpp
@@ -2037,6 +2037,268 @@
     vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport, true /* do lock */);
 }
 #endif
+#ifdef VK_VERSION_1_2
+static void entry_vkCmdDrawIndirectCount(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    VkBuffer countBuffer,
+    VkDeviceSize countBufferOffset,
+    uint32_t maxDrawCount,
+    uint32_t stride)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectCount");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
+static void entry_vkCmdDrawIndexedIndirectCount(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    VkBuffer countBuffer,
+    VkDeviceSize countBufferOffset,
+    uint32_t maxDrawCount,
+    uint32_t stride)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCount");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
+static VkResult entry_vkCreateRenderPass2(
+    VkDevice device,
+    const VkRenderPassCreateInfo2* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkRenderPass* pRenderPass)
+{
+    AEMU_SCOPED_TRACE("vkCreateRenderPass2");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
+    vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
+    return vkCreateRenderPass2_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateRenderPass2(
+    VkDevice device,
+    const VkRenderPassCreateInfo2* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkRenderPass* pRenderPass)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateRenderPass2", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkCreateRenderPass2");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
+    vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
+    return vkCreateRenderPass2_VkResult_return;
+}
+static void entry_vkCmdBeginRenderPass2(
+    VkCommandBuffer commandBuffer,
+    const VkRenderPassBeginInfo* pRenderPassBegin,
+    const VkSubpassBeginInfo* pSubpassBeginInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
+}
+static void entry_vkCmdNextSubpass2(
+    VkCommandBuffer commandBuffer,
+    const VkSubpassBeginInfo* pSubpassBeginInfo,
+    const VkSubpassEndInfo* pSubpassEndInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdNextSubpass2");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
+}
+static void entry_vkCmdEndRenderPass2(
+    VkCommandBuffer commandBuffer,
+    const VkSubpassEndInfo* pSubpassEndInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdEndRenderPass2");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */);
+}
+static void entry_vkResetQueryPool(
+    VkDevice device,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t queryCount)
+{
+    AEMU_SCOPED_TRACE("vkResetQueryPool");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */);
+}
+static void dynCheck_entry_vkResetQueryPool(
+    VkDevice device,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t queryCount)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkResetQueryPool", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkResetQueryPool");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */);
+}
+static VkResult entry_vkGetSemaphoreCounterValue(
+    VkDevice device,
+    VkSemaphore semaphore,
+    uint64_t* pValue)
+{
+    AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
+    vkGetSemaphoreCounterValue_VkResult_return = vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */);
+    return vkGetSemaphoreCounterValue_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetSemaphoreCounterValue(
+    VkDevice device,
+    VkSemaphore semaphore,
+    uint64_t* pValue)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreCounterValue", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
+    vkGetSemaphoreCounterValue_VkResult_return = vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */);
+    return vkGetSemaphoreCounterValue_VkResult_return;
+}
+static VkResult entry_vkWaitSemaphores(
+    VkDevice device,
+    const VkSemaphoreWaitInfo* pWaitInfo,
+    uint64_t timeout)
+{
+    AEMU_SCOPED_TRACE("vkWaitSemaphores");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
+    vkWaitSemaphores_VkResult_return = vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */);
+    return vkWaitSemaphores_VkResult_return;
+}
+static VkResult dynCheck_entry_vkWaitSemaphores(
+    VkDevice device,
+    const VkSemaphoreWaitInfo* pWaitInfo,
+    uint64_t timeout)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkWaitSemaphores", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkWaitSemaphores");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
+    vkWaitSemaphores_VkResult_return = vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */);
+    return vkWaitSemaphores_VkResult_return;
+}
+static VkResult entry_vkSignalSemaphore(
+    VkDevice device,
+    const VkSemaphoreSignalInfo* pSignalInfo)
+{
+    AEMU_SCOPED_TRACE("vkSignalSemaphore");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
+    vkSignalSemaphore_VkResult_return = vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */);
+    return vkSignalSemaphore_VkResult_return;
+}
+static VkResult dynCheck_entry_vkSignalSemaphore(
+    VkDevice device,
+    const VkSemaphoreSignalInfo* pSignalInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkSignalSemaphore", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkSignalSemaphore");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
+    vkSignalSemaphore_VkResult_return = vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */);
+    return vkSignalSemaphore_VkResult_return;
+}
+static VkDeviceAddress entry_vkGetBufferDeviceAddress(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetBufferDeviceAddress_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */);
+    return vkGetBufferDeviceAddress_VkDeviceAddress_return;
+}
+static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddress(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddress", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetBufferDeviceAddress_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */);
+    return vkGetBufferDeviceAddress_VkDeviceAddress_return;
+}
+static uint64_t entry_vkGetBufferOpaqueCaptureAddress(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
+    vkGetBufferOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */);
+    return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
+}
+static uint64_t dynCheck_entry_vkGetBufferOpaqueCaptureAddress(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetBufferOpaqueCaptureAddress", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
+    vkGetBufferOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */);
+    return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
+}
+static uint64_t entry_vkGetDeviceMemoryOpaqueCaptureAddress(
+    VkDevice device,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
+    vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */);
+    return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
+}
+static uint64_t dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress(
+    VkDevice device,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceMemoryOpaqueCaptureAddress", "VK_VERSION_1_2");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
+    vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */);
+    return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
+}
+#endif
 #ifdef VK_KHR_surface
 static void entry_vkDestroySurfaceKHR(
     VkInstance instance,
@@ -2507,31 +2769,6 @@
     return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
 }
 #endif
-#ifdef VK_KHR_mir_surface
-static VkResult entry_vkCreateMirSurfaceKHR(
-    VkInstance instance,
-    const VkMirSurfaceCreateInfoKHR* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkSurfaceKHR* pSurface)
-{
-    AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
-    vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
-    return vkCreateMirSurfaceKHR_VkResult_return;
-}
-static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
-    VkPhysicalDevice physicalDevice,
-    uint32_t queueFamilyIndex,
-    MirConnection* connection)
-{
-    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
-    vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, true /* do lock */);
-    return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
-}
-#endif
 #ifdef VK_KHR_android_surface
 static VkResult entry_vkCreateAndroidSurfaceKHR(
     VkInstance instance,
@@ -3009,6 +3246,8 @@
     vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, true /* do lock */);
 }
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -3092,10 +3331,12 @@
     vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, true /* do lock */);
 }
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
 static VkResult entry_vkCreateRenderPass2KHR(
     VkDevice device,
-    const VkRenderPassCreateInfo2KHR* pCreateInfo,
+    const VkRenderPassCreateInfo2* pCreateInfo,
     const VkAllocationCallbacks* pAllocator,
     VkRenderPass* pRenderPass)
 {
@@ -3107,7 +3348,7 @@
 }
 static VkResult dynCheck_entry_vkCreateRenderPass2KHR(
     VkDevice device,
-    const VkRenderPassCreateInfo2KHR* pCreateInfo,
+    const VkRenderPassCreateInfo2* pCreateInfo,
     const VkAllocationCallbacks* pAllocator,
     VkRenderPass* pRenderPass)
 {
@@ -3125,7 +3366,7 @@
 static void entry_vkCmdBeginRenderPass2KHR(
     VkCommandBuffer commandBuffer,
     const VkRenderPassBeginInfo* pRenderPassBegin,
-    const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
+    const VkSubpassBeginInfo* pSubpassBeginInfo)
 {
     AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
@@ -3133,8 +3374,8 @@
 }
 static void entry_vkCmdNextSubpass2KHR(
     VkCommandBuffer commandBuffer,
-    const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
-    const VkSubpassEndInfoKHR* pSubpassEndInfo)
+    const VkSubpassBeginInfo* pSubpassBeginInfo,
+    const VkSubpassEndInfo* pSubpassEndInfo)
 {
     AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
@@ -3142,7 +3383,7 @@
 }
 static void entry_vkCmdEndRenderPass2KHR(
     VkCommandBuffer commandBuffer,
-    const VkSubpassEndInfoKHR* pSubpassEndInfo)
+    const VkSubpassEndInfo* pSubpassEndInfo)
 {
     AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
@@ -3300,6 +3541,74 @@
     return vkGetFenceFdKHR_VkResult_return;
 }
 #endif
+#ifdef VK_KHR_performance_query
+static VkResult entry_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
+    VkPhysicalDevice physicalDevice,
+    uint32_t queueFamilyIndex,
+    uint32_t* pCounterCount,
+    VkPerformanceCounterKHR* pCounters,
+    VkPerformanceCounterDescriptionKHR* pCounterDescriptions)
+{
+    AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return = (VkResult)0;
+    vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, true /* do lock */);
+    return vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return;
+}
+static void entry_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
+    VkPhysicalDevice physicalDevice,
+    const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
+    uint32_t* pNumPasses)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, true /* do lock */);
+}
+static VkResult entry_vkAcquireProfilingLockKHR(
+    VkDevice device,
+    const VkAcquireProfilingLockInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkAcquireProfilingLockKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquireProfilingLockKHR_VkResult_return = (VkResult)0;
+    vkAcquireProfilingLockKHR_VkResult_return = vkEnc->vkAcquireProfilingLockKHR(device, pInfo, true /* do lock */);
+    return vkAcquireProfilingLockKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkAcquireProfilingLockKHR(
+    VkDevice device,
+    const VkAcquireProfilingLockInfoKHR* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_performance_query"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkAcquireProfilingLockKHR", "VK_KHR_performance_query");
+    }
+    AEMU_SCOPED_TRACE("vkAcquireProfilingLockKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquireProfilingLockKHR_VkResult_return = (VkResult)0;
+    vkAcquireProfilingLockKHR_VkResult_return = vkEnc->vkAcquireProfilingLockKHR(device, pInfo, true /* do lock */);
+    return vkAcquireProfilingLockKHR_VkResult_return;
+}
+static void entry_vkReleaseProfilingLockKHR(
+    VkDevice device)
+{
+    AEMU_SCOPED_TRACE("vkReleaseProfilingLockKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkReleaseProfilingLockKHR(device, true /* do lock */);
+}
+static void dynCheck_entry_vkReleaseProfilingLockKHR(
+    VkDevice device)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_performance_query"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkReleaseProfilingLockKHR", "VK_KHR_performance_query");
+    }
+    AEMU_SCOPED_TRACE("vkReleaseProfilingLockKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkReleaseProfilingLockKHR(device, true /* do lock */);
+}
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -3573,6 +3882,8 @@
     return vkBindImageMemory2KHR_VkResult_return;
 }
 #endif
+#ifdef VK_KHR_portability_subset
+#endif
 #ifdef VK_KHR_maintenance3
 static void entry_vkGetDescriptorSetLayoutSupportKHR(
     VkDevice device,
@@ -3626,9 +3937,483 @@
     vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
 }
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
 #endif
-#ifdef VK_KHR_shader_float16_int8
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+static VkResult entry_vkGetSemaphoreCounterValueKHR(
+    VkDevice device,
+    VkSemaphore semaphore,
+    uint64_t* pValue)
+{
+    AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValueKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetSemaphoreCounterValueKHR_VkResult_return = (VkResult)0;
+    vkGetSemaphoreCounterValueKHR_VkResult_return = vkEnc->vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, true /* do lock */);
+    return vkGetSemaphoreCounterValueKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetSemaphoreCounterValueKHR(
+    VkDevice device,
+    VkSemaphore semaphore,
+    uint64_t* pValue)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreCounterValueKHR", "VK_KHR_timeline_semaphore");
+    }
+    AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValueKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetSemaphoreCounterValueKHR_VkResult_return = (VkResult)0;
+    vkGetSemaphoreCounterValueKHR_VkResult_return = vkEnc->vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, true /* do lock */);
+    return vkGetSemaphoreCounterValueKHR_VkResult_return;
+}
+static VkResult entry_vkWaitSemaphoresKHR(
+    VkDevice device,
+    const VkSemaphoreWaitInfo* pWaitInfo,
+    uint64_t timeout)
+{
+    AEMU_SCOPED_TRACE("vkWaitSemaphoresKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWaitSemaphoresKHR_VkResult_return = (VkResult)0;
+    vkWaitSemaphoresKHR_VkResult_return = vkEnc->vkWaitSemaphoresKHR(device, pWaitInfo, timeout, true /* do lock */);
+    return vkWaitSemaphoresKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkWaitSemaphoresKHR(
+    VkDevice device,
+    const VkSemaphoreWaitInfo* pWaitInfo,
+    uint64_t timeout)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkWaitSemaphoresKHR", "VK_KHR_timeline_semaphore");
+    }
+    AEMU_SCOPED_TRACE("vkWaitSemaphoresKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWaitSemaphoresKHR_VkResult_return = (VkResult)0;
+    vkWaitSemaphoresKHR_VkResult_return = vkEnc->vkWaitSemaphoresKHR(device, pWaitInfo, timeout, true /* do lock */);
+    return vkWaitSemaphoresKHR_VkResult_return;
+}
+static VkResult entry_vkSignalSemaphoreKHR(
+    VkDevice device,
+    const VkSemaphoreSignalInfo* pSignalInfo)
+{
+    AEMU_SCOPED_TRACE("vkSignalSemaphoreKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSignalSemaphoreKHR_VkResult_return = (VkResult)0;
+    vkSignalSemaphoreKHR_VkResult_return = vkEnc->vkSignalSemaphoreKHR(device, pSignalInfo, true /* do lock */);
+    return vkSignalSemaphoreKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkSignalSemaphoreKHR(
+    VkDevice device,
+    const VkSemaphoreSignalInfo* pSignalInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkSignalSemaphoreKHR", "VK_KHR_timeline_semaphore");
+    }
+    AEMU_SCOPED_TRACE("vkSignalSemaphoreKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSignalSemaphoreKHR_VkResult_return = (VkResult)0;
+    vkSignalSemaphoreKHR_VkResult_return = vkEnc->vkSignalSemaphoreKHR(device, pSignalInfo, true /* do lock */);
+    return vkSignalSemaphoreKHR_VkResult_return;
+}
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+static VkResult entry_vkGetPhysicalDeviceFragmentShadingRatesKHR(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pFragmentShadingRateCount,
+    VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFragmentShadingRatesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, true /* do lock */);
+    return vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return;
+}
+static void entry_vkCmdSetFragmentShadingRateKHR(
+    VkCommandBuffer commandBuffer,
+    const VkExtent2D* pFragmentSize,
+    const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
+{
+    AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, true /* do lock */);
+}
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+static VkDeviceAddress entry_vkGetBufferDeviceAddressKHR(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetBufferDeviceAddressKHR_VkDeviceAddress_return;
+}
+static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddressKHR(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddressKHR", "VK_KHR_buffer_device_address");
+    }
+    AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetBufferDeviceAddressKHR_VkDeviceAddress_return;
+}
+static uint64_t entry_vkGetBufferOpaqueCaptureAddressKHR(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
+    vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return;
+}
+static uint64_t dynCheck_entry_vkGetBufferOpaqueCaptureAddressKHR(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetBufferOpaqueCaptureAddressKHR", "VK_KHR_buffer_device_address");
+    }
+    AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
+    vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return;
+}
+static uint64_t entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
+    VkDevice device,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
+    vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return;
+}
+static uint64_t dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR(
+    VkDevice device,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceMemoryOpaqueCaptureAddressKHR", "VK_KHR_buffer_device_address");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0;
+    vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return;
+}
+#endif
+#ifdef VK_KHR_deferred_host_operations
+static VkResult entry_vkCreateDeferredOperationKHR(
+    VkDevice device,
+    const VkAllocationCallbacks* pAllocator,
+    VkDeferredOperationKHR* pDeferredOperation)
+{
+    AEMU_SCOPED_TRACE("vkCreateDeferredOperationKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateDeferredOperationKHR_VkResult_return = (VkResult)0;
+    vkCreateDeferredOperationKHR_VkResult_return = vkEnc->vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, true /* do lock */);
+    return vkCreateDeferredOperationKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateDeferredOperationKHR(
+    VkDevice device,
+    const VkAllocationCallbacks* pAllocator,
+    VkDeferredOperationKHR* pDeferredOperation)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateDeferredOperationKHR", "VK_KHR_deferred_host_operations");
+    }
+    AEMU_SCOPED_TRACE("vkCreateDeferredOperationKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateDeferredOperationKHR_VkResult_return = (VkResult)0;
+    vkCreateDeferredOperationKHR_VkResult_return = vkEnc->vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, true /* do lock */);
+    return vkCreateDeferredOperationKHR_VkResult_return;
+}
+static void entry_vkDestroyDeferredOperationKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyDeferredOperationKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyDeferredOperationKHR(device, operation, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyDeferredOperationKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyDeferredOperationKHR", "VK_KHR_deferred_host_operations");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyDeferredOperationKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyDeferredOperationKHR(device, operation, pAllocator, true /* do lock */);
+}
+static uint32_t entry_vkGetDeferredOperationMaxConcurrencyKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation)
+{
+    AEMU_SCOPED_TRACE("vkGetDeferredOperationMaxConcurrencyKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint32_t vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = (uint32_t)0;
+    vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = vkEnc->vkGetDeferredOperationMaxConcurrencyKHR(device, operation, true /* do lock */);
+    return vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return;
+}
+static uint32_t dynCheck_entry_vkGetDeferredOperationMaxConcurrencyKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeferredOperationMaxConcurrencyKHR", "VK_KHR_deferred_host_operations");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeferredOperationMaxConcurrencyKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint32_t vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = (uint32_t)0;
+    vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = vkEnc->vkGetDeferredOperationMaxConcurrencyKHR(device, operation, true /* do lock */);
+    return vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return;
+}
+static VkResult entry_vkGetDeferredOperationResultKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation)
+{
+    AEMU_SCOPED_TRACE("vkGetDeferredOperationResultKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetDeferredOperationResultKHR_VkResult_return = (VkResult)0;
+    vkGetDeferredOperationResultKHR_VkResult_return = vkEnc->vkGetDeferredOperationResultKHR(device, operation, true /* do lock */);
+    return vkGetDeferredOperationResultKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetDeferredOperationResultKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeferredOperationResultKHR", "VK_KHR_deferred_host_operations");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeferredOperationResultKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetDeferredOperationResultKHR_VkResult_return = (VkResult)0;
+    vkGetDeferredOperationResultKHR_VkResult_return = vkEnc->vkGetDeferredOperationResultKHR(device, operation, true /* do lock */);
+    return vkGetDeferredOperationResultKHR_VkResult_return;
+}
+static VkResult entry_vkDeferredOperationJoinKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation)
+{
+    AEMU_SCOPED_TRACE("vkDeferredOperationJoinKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkDeferredOperationJoinKHR_VkResult_return = (VkResult)0;
+    vkDeferredOperationJoinKHR_VkResult_return = vkEnc->vkDeferredOperationJoinKHR(device, operation, true /* do lock */);
+    return vkDeferredOperationJoinKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkDeferredOperationJoinKHR(
+    VkDevice device,
+    VkDeferredOperationKHR operation)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDeferredOperationJoinKHR", "VK_KHR_deferred_host_operations");
+    }
+    AEMU_SCOPED_TRACE("vkDeferredOperationJoinKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkDeferredOperationJoinKHR_VkResult_return = (VkResult)0;
+    vkDeferredOperationJoinKHR_VkResult_return = vkEnc->vkDeferredOperationJoinKHR(device, operation, true /* do lock */);
+    return vkDeferredOperationJoinKHR_VkResult_return;
+}
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+static VkResult entry_vkGetPipelineExecutablePropertiesKHR(
+    VkDevice device,
+    const VkPipelineInfoKHR* pPipelineInfo,
+    uint32_t* pExecutableCount,
+    VkPipelineExecutablePropertiesKHR* pProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetPipelineExecutablePropertiesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPipelineExecutablePropertiesKHR_VkResult_return = (VkResult)0;
+    vkGetPipelineExecutablePropertiesKHR_VkResult_return = vkEnc->vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, true /* do lock */);
+    return vkGetPipelineExecutablePropertiesKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetPipelineExecutablePropertiesKHR(
+    VkDevice device,
+    const VkPipelineInfoKHR* pPipelineInfo,
+    uint32_t* pExecutableCount,
+    VkPipelineExecutablePropertiesKHR* pProperties)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetPipelineExecutablePropertiesKHR", "VK_KHR_pipeline_executable_properties");
+    }
+    AEMU_SCOPED_TRACE("vkGetPipelineExecutablePropertiesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPipelineExecutablePropertiesKHR_VkResult_return = (VkResult)0;
+    vkGetPipelineExecutablePropertiesKHR_VkResult_return = vkEnc->vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, true /* do lock */);
+    return vkGetPipelineExecutablePropertiesKHR_VkResult_return;
+}
+static VkResult entry_vkGetPipelineExecutableStatisticsKHR(
+    VkDevice device,
+    const VkPipelineExecutableInfoKHR* pExecutableInfo,
+    uint32_t* pStatisticCount,
+    VkPipelineExecutableStatisticKHR* pStatistics)
+{
+    AEMU_SCOPED_TRACE("vkGetPipelineExecutableStatisticsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPipelineExecutableStatisticsKHR_VkResult_return = (VkResult)0;
+    vkGetPipelineExecutableStatisticsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, true /* do lock */);
+    return vkGetPipelineExecutableStatisticsKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetPipelineExecutableStatisticsKHR(
+    VkDevice device,
+    const VkPipelineExecutableInfoKHR* pExecutableInfo,
+    uint32_t* pStatisticCount,
+    VkPipelineExecutableStatisticKHR* pStatistics)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetPipelineExecutableStatisticsKHR", "VK_KHR_pipeline_executable_properties");
+    }
+    AEMU_SCOPED_TRACE("vkGetPipelineExecutableStatisticsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPipelineExecutableStatisticsKHR_VkResult_return = (VkResult)0;
+    vkGetPipelineExecutableStatisticsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, true /* do lock */);
+    return vkGetPipelineExecutableStatisticsKHR_VkResult_return;
+}
+static VkResult entry_vkGetPipelineExecutableInternalRepresentationsKHR(
+    VkDevice device,
+    const VkPipelineExecutableInfoKHR* pExecutableInfo,
+    uint32_t* pInternalRepresentationCount,
+    VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations)
+{
+    AEMU_SCOPED_TRACE("vkGetPipelineExecutableInternalRepresentationsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = (VkResult)0;
+    vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, true /* do lock */);
+    return vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetPipelineExecutableInternalRepresentationsKHR(
+    VkDevice device,
+    const VkPipelineExecutableInfoKHR* pExecutableInfo,
+    uint32_t* pInternalRepresentationCount,
+    VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetPipelineExecutableInternalRepresentationsKHR", "VK_KHR_pipeline_executable_properties");
+    }
+    AEMU_SCOPED_TRACE("vkGetPipelineExecutableInternalRepresentationsKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = (VkResult)0;
+    vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, true /* do lock */);
+    return vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return;
+}
+#endif
+#ifdef VK_KHR_pipeline_library
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+static void entry_vkCmdCopyBuffer2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyBufferInfo2KHR* pCopyBufferInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyBuffer2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, true /* do lock */);
+}
+static void entry_vkCmdCopyImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyImageInfo2KHR* pCopyImageInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyImage2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, true /* do lock */);
+}
+static void entry_vkCmdCopyBufferToImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, true /* do lock */);
+}
+static void entry_vkCmdCopyImageToBuffer2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, true /* do lock */);
+}
+static void entry_vkCmdBlitImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkBlitImageInfo2KHR* pBlitImageInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdBlitImage2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, true /* do lock */);
+}
+static void entry_vkCmdResolveImage2KHR(
+    VkCommandBuffer commandBuffer,
+    const VkResolveImageInfo2KHR* pResolveImageInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdResolveImage2KHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */);
+}
 #endif
 #ifdef VK_ANDROID_native_buffer
 static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
@@ -3833,6 +4618,130 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 #endif
+#ifdef VK_EXT_transform_feedback
+static void entry_vkCmdBindTransformFeedbackBuffersEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstBinding,
+    uint32_t bindingCount,
+    const VkBuffer* pBuffers,
+    const VkDeviceSize* pOffsets,
+    const VkDeviceSize* pSizes)
+{
+    AEMU_SCOPED_TRACE("vkCmdBindTransformFeedbackBuffersEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, true /* do lock */);
+}
+static void entry_vkCmdBeginTransformFeedbackEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstCounterBuffer,
+    uint32_t counterBufferCount,
+    const VkBuffer* pCounterBuffers,
+    const VkDeviceSize* pCounterBufferOffsets)
+{
+    AEMU_SCOPED_TRACE("vkCmdBeginTransformFeedbackEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
+}
+static void entry_vkCmdEndTransformFeedbackEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstCounterBuffer,
+    uint32_t counterBufferCount,
+    const VkBuffer* pCounterBuffers,
+    const VkDeviceSize* pCounterBufferOffsets)
+{
+    AEMU_SCOPED_TRACE("vkCmdEndTransformFeedbackEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */);
+}
+static void entry_vkCmdBeginQueryIndexedEXT(
+    VkCommandBuffer commandBuffer,
+    VkQueryPool queryPool,
+    uint32_t query,
+    VkQueryControlFlags flags,
+    uint32_t index)
+{
+    AEMU_SCOPED_TRACE("vkCmdBeginQueryIndexedEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, true /* do lock */);
+}
+static void entry_vkCmdEndQueryIndexedEXT(
+    VkCommandBuffer commandBuffer,
+    VkQueryPool queryPool,
+    uint32_t query,
+    uint32_t index)
+{
+    AEMU_SCOPED_TRACE("vkCmdEndQueryIndexedEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, true /* do lock */);
+}
+static void entry_vkCmdDrawIndirectByteCountEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t instanceCount,
+    uint32_t firstInstance,
+    VkBuffer counterBuffer,
+    VkDeviceSize counterBufferOffset,
+    uint32_t counterOffset,
+    uint32_t vertexStride)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawIndirectByteCountEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */);
+}
+#endif
+#ifdef VK_NVX_image_view_handle
+static uint32_t entry_vkGetImageViewHandleNVX(
+    VkDevice device,
+    const VkImageViewHandleInfoNVX* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetImageViewHandleNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint32_t vkGetImageViewHandleNVX_uint32_t_return = (uint32_t)0;
+    vkGetImageViewHandleNVX_uint32_t_return = vkEnc->vkGetImageViewHandleNVX(device, pInfo, true /* do lock */);
+    return vkGetImageViewHandleNVX_uint32_t_return;
+}
+static uint32_t dynCheck_entry_vkGetImageViewHandleNVX(
+    VkDevice device,
+    const VkImageViewHandleInfoNVX* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NVX_image_view_handle"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetImageViewHandleNVX", "VK_NVX_image_view_handle");
+    }
+    AEMU_SCOPED_TRACE("vkGetImageViewHandleNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    uint32_t vkGetImageViewHandleNVX_uint32_t_return = (uint32_t)0;
+    vkGetImageViewHandleNVX_uint32_t_return = vkEnc->vkGetImageViewHandleNVX(device, pInfo, true /* do lock */);
+    return vkGetImageViewHandleNVX_uint32_t_return;
+}
+static VkResult entry_vkGetImageViewAddressNVX(
+    VkDevice device,
+    VkImageView imageView,
+    VkImageViewAddressPropertiesNVX* pProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetImageViewAddressNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetImageViewAddressNVX_VkResult_return = (VkResult)0;
+    vkGetImageViewAddressNVX_VkResult_return = vkEnc->vkGetImageViewAddressNVX(device, imageView, pProperties, true /* do lock */);
+    return vkGetImageViewAddressNVX_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetImageViewAddressNVX(
+    VkDevice device,
+    VkImageView imageView,
+    VkImageViewAddressPropertiesNVX* pProperties)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NVX_image_view_handle"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetImageViewAddressNVX", "VK_NVX_image_view_handle");
+    }
+    AEMU_SCOPED_TRACE("vkGetImageViewAddressNVX");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetImageViewAddressNVX_VkResult_return = (VkResult)0;
+    vkGetImageViewAddressNVX_VkResult_return = vkEnc->vkGetImageViewAddressNVX(device, imageView, pProperties, true /* do lock */);
+    return vkGetImageViewAddressNVX_VkResult_return;
+}
+#endif
 #ifdef VK_AMD_draw_indirect_count
 static void entry_vkCmdDrawIndirectCountAMD(
     VkCommandBuffer commandBuffer,
@@ -3906,6 +4815,22 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+static VkResult entry_vkCreateStreamDescriptorSurfaceGGP(
+    VkInstance instance,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface)
+{
+    AEMU_SCOPED_TRACE("vkCreateStreamDescriptorSurfaceGGP");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateStreamDescriptorSurfaceGGP_VkResult_return = (VkResult)0;
+    vkCreateStreamDescriptorSurfaceGGP_VkResult_return = vkEnc->vkCreateStreamDescriptorSurfaceGGP(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
+    return vkCreateStreamDescriptorSurfaceGGP_VkResult_return;
+}
+#endif
+#ifdef VK_NV_corner_sampled_image
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -3981,6 +4906,10 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+#endif
+#ifdef VK_EXT_astc_decode_mode
+#endif
 #ifdef VK_EXT_conditional_rendering
 static void entry_vkCmdBeginConditionalRenderingEXT(
     VkCommandBuffer commandBuffer,
@@ -3998,199 +4927,6 @@
     vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer, true /* do lock */);
 }
 #endif
-#ifdef VK_NVX_device_generated_commands
-static void entry_vkCmdProcessCommandsNVX(
-    VkCommandBuffer commandBuffer,
-    const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
-{
-    AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo, true /* do lock */);
-}
-static void entry_vkCmdReserveSpaceForCommandsNVX(
-    VkCommandBuffer commandBuffer,
-    const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
-{
-    AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
-    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
-    vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo, true /* do lock */);
-}
-static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
-    VkDevice device,
-    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
-{
-    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
-    vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, true /* do lock */);
-    return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
-}
-static VkResult dynCheck_entry_vkCreateIndirectCommandsLayoutNVX(
-    VkDevice device,
-    const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
-{
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCreateIndirectCommandsLayoutNVX", "VK_NVX_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
-    vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, true /* do lock */);
-    return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
-}
-static void entry_vkDestroyIndirectCommandsLayoutNVX(
-    VkDevice device,
-    VkIndirectCommandsLayoutNVX indirectCommandsLayout,
-    const VkAllocationCallbacks* pAllocator)
-{
-    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator, true /* do lock */);
-}
-static void dynCheck_entry_vkDestroyIndirectCommandsLayoutNVX(
-    VkDevice device,
-    VkIndirectCommandsLayoutNVX indirectCommandsLayout,
-    const VkAllocationCallbacks* pAllocator)
-{
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkDestroyIndirectCommandsLayoutNVX", "VK_NVX_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator, true /* do lock */);
-}
-static VkResult entry_vkCreateObjectTableNVX(
-    VkDevice device,
-    const VkObjectTableCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkObjectTableNVX* pObjectTable)
-{
-    AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
-    vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable, true /* do lock */);
-    return vkCreateObjectTableNVX_VkResult_return;
-}
-static VkResult dynCheck_entry_vkCreateObjectTableNVX(
-    VkDevice device,
-    const VkObjectTableCreateInfoNVX* pCreateInfo,
-    const VkAllocationCallbacks* pAllocator,
-    VkObjectTableNVX* pObjectTable)
-{
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkCreateObjectTableNVX", "VK_NVX_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
-    vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable, true /* do lock */);
-    return vkCreateObjectTableNVX_VkResult_return;
-}
-static void entry_vkDestroyObjectTableNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    const VkAllocationCallbacks* pAllocator)
-{
-    AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator, true /* do lock */);
-}
-static void dynCheck_entry_vkDestroyObjectTableNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    const VkAllocationCallbacks* pAllocator)
-{
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkDestroyObjectTableNVX", "VK_NVX_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator, true /* do lock */);
-}
-static VkResult entry_vkRegisterObjectsNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    uint32_t objectCount,
-    const VkObjectTableEntryNVX* const* ppObjectTableEntries,
-    const uint32_t* pObjectIndices)
-{
-    AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
-    vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices, true /* do lock */);
-    return vkRegisterObjectsNVX_VkResult_return;
-}
-static VkResult dynCheck_entry_vkRegisterObjectsNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    uint32_t objectCount,
-    const VkObjectTableEntryNVX* const* ppObjectTableEntries,
-    const uint32_t* pObjectIndices)
-{
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkRegisterObjectsNVX", "VK_NVX_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
-    vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices, true /* do lock */);
-    return vkRegisterObjectsNVX_VkResult_return;
-}
-static VkResult entry_vkUnregisterObjectsNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    uint32_t objectCount,
-    const VkObjectEntryTypeNVX* pObjectEntryTypes,
-    const uint32_t* pObjectIndices)
-{
-    AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
-    vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices, true /* do lock */);
-    return vkUnregisterObjectsNVX_VkResult_return;
-}
-static VkResult dynCheck_entry_vkUnregisterObjectsNVX(
-    VkDevice device,
-    VkObjectTableNVX objectTable,
-    uint32_t objectCount,
-    const VkObjectEntryTypeNVX* pObjectEntryTypes,
-    const uint32_t* pObjectIndices)
-{
-    auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
-    {
-        sOnInvalidDynamicallyCheckedCall("vkUnregisterObjectsNVX", "VK_NVX_device_generated_commands");
-    }
-    AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
-    vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices, true /* do lock */);
-    return vkUnregisterObjectsNVX_VkResult_return;
-}
-static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
-    VkPhysicalDevice physicalDevice,
-    VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
-    VkDeviceGeneratedCommandsLimitsNVX* pLimits)
-{
-    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits, true /* do lock */);
-}
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 static void entry_vkCmdSetViewportWScalingNV(
     VkCommandBuffer commandBuffer,
@@ -4453,6 +5189,8 @@
 #endif
 #ifdef VK_EXT_conservative_rasterization
 #endif
+#ifdef VK_EXT_depth_clip_enable
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -4510,6 +5248,60 @@
     return vkCreateMacOSSurfaceMVK_VkResult_return;
 }
 #endif
+#ifdef VK_MVK_moltenvk
+static void entry_vkGetMTLDeviceMVK(
+    VkPhysicalDevice physicalDevice,
+    void** pMTLDevice)
+{
+    AEMU_SCOPED_TRACE("vkGetMTLDeviceMVK");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetMTLDeviceMVK(physicalDevice, pMTLDevice, true /* do lock */);
+}
+static VkResult entry_vkSetMTLTextureMVK(
+    VkImage image,
+    void* mtlTexture)
+{
+    AEMU_SCOPED_TRACE("vkSetMTLTextureMVK");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSetMTLTextureMVK_VkResult_return = (VkResult)0;
+    vkSetMTLTextureMVK_VkResult_return = vkEnc->vkSetMTLTextureMVK(image, mtlTexture, true /* do lock */);
+    return vkSetMTLTextureMVK_VkResult_return;
+}
+static void entry_vkGetMTLTextureMVK(
+    VkImage image,
+    void** pMTLTexture)
+{
+    AEMU_SCOPED_TRACE("vkGetMTLTextureMVK");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetMTLTextureMVK(image, pMTLTexture, true /* do lock */);
+}
+static void entry_vkGetMTLBufferMVK(
+    VkBuffer buffer,
+    void** pMTLBuffer)
+{
+    AEMU_SCOPED_TRACE("vkGetMTLBufferMVK");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetMTLBufferMVK(buffer, pMTLBuffer, true /* do lock */);
+}
+static VkResult entry_vkUseIOSurfaceMVK(
+    VkImage image,
+    void* ioSurface)
+{
+    AEMU_SCOPED_TRACE("vkUseIOSurfaceMVK");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkUseIOSurfaceMVK_VkResult_return = (VkResult)0;
+    vkUseIOSurfaceMVK_VkResult_return = vkEnc->vkUseIOSurfaceMVK(image, ioSurface, true /* do lock */);
+    return vkUseIOSurfaceMVK_VkResult_return;
+}
+static void entry_vkGetIOSurfaceMVK(
+    VkImage image,
+    void** pIOSurface)
+{
+    AEMU_SCOPED_TRACE("vkGetIOSurfaceMVK");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetIOSurfaceMVK(image, pIOSurface, true /* do lock */);
+}
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
@@ -4709,6 +5501,8 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -4738,8 +5532,39 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+static VkResult entry_vkGetImageDrmFormatModifierPropertiesEXT(
+    VkDevice device,
+    VkImage image,
+    VkImageDrmFormatModifierPropertiesEXT* pProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetImageDrmFormatModifierPropertiesEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = (VkResult)0;
+    vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = vkEnc->vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, true /* do lock */);
+    return vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetImageDrmFormatModifierPropertiesEXT(
+    VkDevice device,
+    VkImage image,
+    VkImageDrmFormatModifierPropertiesEXT* pProperties)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_image_drm_format_modifier"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetImageDrmFormatModifierPropertiesEXT", "VK_EXT_image_drm_format_modifier");
+    }
+    AEMU_SCOPED_TRACE("vkGetImageDrmFormatModifierPropertiesEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = (VkResult)0;
+    vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = vkEnc->vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, true /* do lock */);
+    return vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return;
+}
+#endif
 #ifdef VK_EXT_validation_cache
 static VkResult entry_vkCreateValidationCacheEXT(
     VkDevice device,
@@ -4856,6 +5681,360 @@
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+static void entry_vkCmdBindShadingRateImageNV(
+    VkCommandBuffer commandBuffer,
+    VkImageView imageView,
+    VkImageLayout imageLayout)
+{
+    AEMU_SCOPED_TRACE("vkCmdBindShadingRateImageNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, true /* do lock */);
+}
+static void entry_vkCmdSetViewportShadingRatePaletteNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstViewport,
+    uint32_t viewportCount,
+    const VkShadingRatePaletteNV* pShadingRatePalettes)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetViewportShadingRatePaletteNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, true /* do lock */);
+}
+static void entry_vkCmdSetCoarseSampleOrderNV(
+    VkCommandBuffer commandBuffer,
+    VkCoarseSampleOrderTypeNV sampleOrderType,
+    uint32_t customSampleOrderCount,
+    const VkCoarseSampleOrderCustomNV* pCustomSampleOrders)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetCoarseSampleOrderNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, true /* do lock */);
+}
+#endif
+#ifdef VK_NV_ray_tracing
+static VkResult entry_vkCreateAccelerationStructureNV(
+    VkDevice device,
+    const VkAccelerationStructureCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkAccelerationStructureNV* pAccelerationStructure)
+{
+    AEMU_SCOPED_TRACE("vkCreateAccelerationStructureNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateAccelerationStructureNV_VkResult_return = (VkResult)0;
+    vkCreateAccelerationStructureNV_VkResult_return = vkEnc->vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */);
+    return vkCreateAccelerationStructureNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateAccelerationStructureNV(
+    VkDevice device,
+    const VkAccelerationStructureCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkAccelerationStructureNV* pAccelerationStructure)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateAccelerationStructureNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkCreateAccelerationStructureNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateAccelerationStructureNV_VkResult_return = (VkResult)0;
+    vkCreateAccelerationStructureNV_VkResult_return = vkEnc->vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */);
+    return vkCreateAccelerationStructureNV_VkResult_return;
+}
+static void entry_vkDestroyAccelerationStructureNV(
+    VkDevice device,
+    VkAccelerationStructureNV accelerationStructure,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyAccelerationStructureNV(
+    VkDevice device,
+    VkAccelerationStructureNV accelerationStructure,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyAccelerationStructureNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, true /* do lock */);
+}
+static void entry_vkGetAccelerationStructureMemoryRequirementsNV(
+    VkDevice device,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2KHR* pMemoryRequirements)
+{
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureMemoryRequirementsNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static void dynCheck_entry_vkGetAccelerationStructureMemoryRequirementsNV(
+    VkDevice device,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2KHR* pMemoryRequirements)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureMemoryRequirementsNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureMemoryRequirementsNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static VkResult entry_vkBindAccelerationStructureMemoryNV(
+    VkDevice device,
+    uint32_t bindInfoCount,
+    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos)
+{
+    AEMU_SCOPED_TRACE("vkBindAccelerationStructureMemoryNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkBindAccelerationStructureMemoryNV_VkResult_return = (VkResult)0;
+    vkBindAccelerationStructureMemoryNV_VkResult_return = vkEnc->vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, true /* do lock */);
+    return vkBindAccelerationStructureMemoryNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkBindAccelerationStructureMemoryNV(
+    VkDevice device,
+    uint32_t bindInfoCount,
+    const VkBindAccelerationStructureMemoryInfoNV* pBindInfos)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkBindAccelerationStructureMemoryNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkBindAccelerationStructureMemoryNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkBindAccelerationStructureMemoryNV_VkResult_return = (VkResult)0;
+    vkBindAccelerationStructureMemoryNV_VkResult_return = vkEnc->vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, true /* do lock */);
+    return vkBindAccelerationStructureMemoryNV_VkResult_return;
+}
+static void entry_vkCmdBuildAccelerationStructureNV(
+    VkCommandBuffer commandBuffer,
+    const VkAccelerationStructureInfoNV* pInfo,
+    VkBuffer instanceData,
+    VkDeviceSize instanceOffset,
+    VkBool32 update,
+    VkAccelerationStructureNV dst,
+    VkAccelerationStructureNV src,
+    VkBuffer scratch,
+    VkDeviceSize scratchOffset)
+{
+    AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructureNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, true /* do lock */);
+}
+static void entry_vkCmdCopyAccelerationStructureNV(
+    VkCommandBuffer commandBuffer,
+    VkAccelerationStructureNV dst,
+    VkAccelerationStructureNV src,
+    VkCopyAccelerationStructureModeKHR mode)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, true /* do lock */);
+}
+static void entry_vkCmdTraceRaysNV(
+    VkCommandBuffer commandBuffer,
+    VkBuffer raygenShaderBindingTableBuffer,
+    VkDeviceSize raygenShaderBindingOffset,
+    VkBuffer missShaderBindingTableBuffer,
+    VkDeviceSize missShaderBindingOffset,
+    VkDeviceSize missShaderBindingStride,
+    VkBuffer hitShaderBindingTableBuffer,
+    VkDeviceSize hitShaderBindingOffset,
+    VkDeviceSize hitShaderBindingStride,
+    VkBuffer callableShaderBindingTableBuffer,
+    VkDeviceSize callableShaderBindingOffset,
+    VkDeviceSize callableShaderBindingStride,
+    uint32_t width,
+    uint32_t height,
+    uint32_t depth)
+{
+    AEMU_SCOPED_TRACE("vkCmdTraceRaysNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, true /* do lock */);
+}
+static VkResult entry_vkCreateRayTracingPipelinesNV(
+    VkDevice device,
+    VkPipelineCache pipelineCache,
+    uint32_t createInfoCount,
+    const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
+    const VkAllocationCallbacks* pAllocator,
+    VkPipeline* pPipelines)
+{
+    AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateRayTracingPipelinesNV_VkResult_return = (VkResult)0;
+    vkCreateRayTracingPipelinesNV_VkResult_return = vkEnc->vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */);
+    return vkCreateRayTracingPipelinesNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateRayTracingPipelinesNV(
+    VkDevice device,
+    VkPipelineCache pipelineCache,
+    uint32_t createInfoCount,
+    const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
+    const VkAllocationCallbacks* pAllocator,
+    VkPipeline* pPipelines)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateRayTracingPipelinesNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateRayTracingPipelinesNV_VkResult_return = (VkResult)0;
+    vkCreateRayTracingPipelinesNV_VkResult_return = vkEnc->vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */);
+    return vkCreateRayTracingPipelinesNV_VkResult_return;
+}
+static VkResult entry_vkGetRayTracingShaderGroupHandlesKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData)
+{
+    AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = (VkResult)0;
+    vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */);
+    return vkGetRayTracingShaderGroupHandlesKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetRayTracingShaderGroupHandlesKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetRayTracingShaderGroupHandlesKHR", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = (VkResult)0;
+    vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */);
+    return vkGetRayTracingShaderGroupHandlesKHR_VkResult_return;
+}
+static VkResult entry_vkGetRayTracingShaderGroupHandlesNV(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData)
+{
+    AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetRayTracingShaderGroupHandlesNV_VkResult_return = (VkResult)0;
+    vkGetRayTracingShaderGroupHandlesNV_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */);
+    return vkGetRayTracingShaderGroupHandlesNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetRayTracingShaderGroupHandlesNV(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetRayTracingShaderGroupHandlesNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetRayTracingShaderGroupHandlesNV_VkResult_return = (VkResult)0;
+    vkGetRayTracingShaderGroupHandlesNV_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */);
+    return vkGetRayTracingShaderGroupHandlesNV_VkResult_return;
+}
+static VkResult entry_vkGetAccelerationStructureHandleNV(
+    VkDevice device,
+    VkAccelerationStructureNV accelerationStructure,
+    size_t dataSize,
+    void* pData)
+{
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureHandleNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetAccelerationStructureHandleNV_VkResult_return = (VkResult)0;
+    vkGetAccelerationStructureHandleNV_VkResult_return = vkEnc->vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, true /* do lock */);
+    return vkGetAccelerationStructureHandleNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetAccelerationStructureHandleNV(
+    VkDevice device,
+    VkAccelerationStructureNV accelerationStructure,
+    size_t dataSize,
+    void* pData)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureHandleNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureHandleNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetAccelerationStructureHandleNV_VkResult_return = (VkResult)0;
+    vkGetAccelerationStructureHandleNV_VkResult_return = vkEnc->vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, true /* do lock */);
+    return vkGetAccelerationStructureHandleNV_VkResult_return;
+}
+static void entry_vkCmdWriteAccelerationStructuresPropertiesNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t accelerationStructureCount,
+    const VkAccelerationStructureNV* pAccelerationStructures,
+    VkQueryType queryType,
+    VkQueryPool queryPool,
+    uint32_t firstQuery)
+{
+    AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
+}
+static VkResult entry_vkCompileDeferredNV(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t shader)
+{
+    AEMU_SCOPED_TRACE("vkCompileDeferredNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCompileDeferredNV_VkResult_return = (VkResult)0;
+    vkCompileDeferredNV_VkResult_return = vkEnc->vkCompileDeferredNV(device, pipeline, shader, true /* do lock */);
+    return vkCompileDeferredNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCompileDeferredNV(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t shader)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCompileDeferredNV", "VK_NV_ray_tracing");
+    }
+    AEMU_SCOPED_TRACE("vkCompileDeferredNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCompileDeferredNV_VkResult_return = (VkResult)0;
+    vkCompileDeferredNV_VkResult_return = vkEnc->vkCompileDeferredNV(device, pipeline, shader, true /* do lock */);
+    return vkCompileDeferredNV_VkResult_return;
+}
+#endif
+#ifdef VK_NV_representative_fragment_test
+#endif
+#ifdef VK_EXT_filter_cubic
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 #endif
 #ifdef VK_EXT_external_memory_host
@@ -4902,12 +6081,117 @@
     vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, true /* do lock */);
 }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+static VkResult entry_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pTimeDomainCount,
+    VkTimeDomainEXT* pTimeDomains)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return = vkEnc->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, true /* do lock */);
+    return vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return;
+}
+static VkResult entry_vkGetCalibratedTimestampsEXT(
+    VkDevice device,
+    uint32_t timestampCount,
+    const VkCalibratedTimestampInfoEXT* pTimestampInfos,
+    uint64_t* pTimestamps,
+    uint64_t* pMaxDeviation)
+{
+    AEMU_SCOPED_TRACE("vkGetCalibratedTimestampsEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetCalibratedTimestampsEXT_VkResult_return = (VkResult)0;
+    vkGetCalibratedTimestampsEXT_VkResult_return = vkEnc->vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, true /* do lock */);
+    return vkGetCalibratedTimestampsEXT_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetCalibratedTimestampsEXT(
+    VkDevice device,
+    uint32_t timestampCount,
+    const VkCalibratedTimestampInfoEXT* pTimestampInfos,
+    uint64_t* pTimestamps,
+    uint64_t* pMaxDeviation)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_calibrated_timestamps"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetCalibratedTimestampsEXT", "VK_EXT_calibrated_timestamps");
+    }
+    AEMU_SCOPED_TRACE("vkGetCalibratedTimestampsEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetCalibratedTimestampsEXT_VkResult_return = (VkResult)0;
+    vkGetCalibratedTimestampsEXT_VkResult_return = vkEnc->vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, true /* do lock */);
+    return vkGetCalibratedTimestampsEXT_VkResult_return;
+}
+#endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 #endif
+#ifdef VK_GGP_frame_token
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+#endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+#endif
+#ifdef VK_NV_mesh_shader
+static void entry_vkCmdDrawMeshTasksNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t taskCount,
+    uint32_t firstTask)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, true /* do lock */);
+}
+static void entry_vkCmdDrawMeshTasksIndirectNV(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    uint32_t drawCount,
+    uint32_t stride)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
+}
+static void entry_vkCmdDrawMeshTasksIndirectCountNV(
+    VkCommandBuffer commandBuffer,
+    VkBuffer buffer,
+    VkDeviceSize offset,
+    VkBuffer countBuffer,
+    VkDeviceSize countBufferOffset,
+    uint32_t maxDrawCount,
+    uint32_t stride)
+{
+    AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectCountNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
+}
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+#endif
+#ifdef VK_NV_shader_image_footprint
+#endif
+#ifdef VK_NV_scissor_exclusive
+static void entry_vkCmdSetExclusiveScissorNV(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstExclusiveScissor,
+    uint32_t exclusiveScissorCount,
+    const VkRect2D* pExclusiveScissors)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetExclusiveScissorNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, true /* do lock */);
+}
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 static void entry_vkCmdSetCheckpointNV(
     VkCommandBuffer commandBuffer,
@@ -4927,33 +6211,226 @@
     vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, true /* do lock */);
 }
 #endif
-#ifdef VK_GOOGLE_address_space
-static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
+#ifdef VK_INTEL_shader_integer_functions2
+#endif
+#ifdef VK_INTEL_performance_query
+static VkResult entry_vkInitializePerformanceApiINTEL(
     VkDevice device,
-    VkDeviceMemory memory,
-    uint64_t* pAddress)
+    const VkInitializePerformanceApiInfoINTEL* pInitializeInfo)
 {
-    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
+    AEMU_SCOPED_TRACE("vkInitializePerformanceApiINTEL");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
-    vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress, true /* do lock */);
-    return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
+    VkResult vkInitializePerformanceApiINTEL_VkResult_return = (VkResult)0;
+    vkInitializePerformanceApiINTEL_VkResult_return = vkEnc->vkInitializePerformanceApiINTEL(device, pInitializeInfo, true /* do lock */);
+    return vkInitializePerformanceApiINTEL_VkResult_return;
 }
-static VkResult dynCheck_entry_vkMapMemoryIntoAddressSpaceGOOGLE(
+static VkResult dynCheck_entry_vkInitializePerformanceApiINTEL(
     VkDevice device,
-    VkDeviceMemory memory,
-    uint64_t* pAddress)
+    const VkInitializePerformanceApiInfoINTEL* pInitializeInfo)
 {
     auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_address_space"))
+    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
     {
-        sOnInvalidDynamicallyCheckedCall("vkMapMemoryIntoAddressSpaceGOOGLE", "VK_GOOGLE_address_space");
+        sOnInvalidDynamicallyCheckedCall("vkInitializePerformanceApiINTEL", "VK_INTEL_performance_query");
     }
-    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
+    AEMU_SCOPED_TRACE("vkInitializePerformanceApiINTEL");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
-    vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress, true /* do lock */);
-    return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
+    VkResult vkInitializePerformanceApiINTEL_VkResult_return = (VkResult)0;
+    vkInitializePerformanceApiINTEL_VkResult_return = vkEnc->vkInitializePerformanceApiINTEL(device, pInitializeInfo, true /* do lock */);
+    return vkInitializePerformanceApiINTEL_VkResult_return;
+}
+static void entry_vkUninitializePerformanceApiINTEL(
+    VkDevice device)
+{
+    AEMU_SCOPED_TRACE("vkUninitializePerformanceApiINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkUninitializePerformanceApiINTEL(device, true /* do lock */);
+}
+static void dynCheck_entry_vkUninitializePerformanceApiINTEL(
+    VkDevice device)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkUninitializePerformanceApiINTEL", "VK_INTEL_performance_query");
+    }
+    AEMU_SCOPED_TRACE("vkUninitializePerformanceApiINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkUninitializePerformanceApiINTEL(device, true /* do lock */);
+}
+static VkResult entry_vkCmdSetPerformanceMarkerINTEL(
+    VkCommandBuffer commandBuffer,
+    const VkPerformanceMarkerInfoINTEL* pMarkerInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetPerformanceMarkerINTEL");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    VkResult vkCmdSetPerformanceMarkerINTEL_VkResult_return = (VkResult)0;
+    vkCmdSetPerformanceMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
+    return vkCmdSetPerformanceMarkerINTEL_VkResult_return;
+}
+static VkResult entry_vkCmdSetPerformanceStreamMarkerINTEL(
+    VkCommandBuffer commandBuffer,
+    const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetPerformanceStreamMarkerINTEL");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    VkResult vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = (VkResult)0;
+    vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */);
+    return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return;
+}
+static VkResult entry_vkCmdSetPerformanceOverrideINTEL(
+    VkCommandBuffer commandBuffer,
+    const VkPerformanceOverrideInfoINTEL* pOverrideInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetPerformanceOverrideINTEL");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    VkResult vkCmdSetPerformanceOverrideINTEL_VkResult_return = (VkResult)0;
+    vkCmdSetPerformanceOverrideINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, true /* do lock */);
+    return vkCmdSetPerformanceOverrideINTEL_VkResult_return;
+}
+static VkResult entry_vkAcquirePerformanceConfigurationINTEL(
+    VkDevice device,
+    const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
+    VkPerformanceConfigurationINTEL* pConfiguration)
+{
+    AEMU_SCOPED_TRACE("vkAcquirePerformanceConfigurationINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquirePerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    vkAcquirePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, true /* do lock */);
+    return vkAcquirePerformanceConfigurationINTEL_VkResult_return;
+}
+static VkResult dynCheck_entry_vkAcquirePerformanceConfigurationINTEL(
+    VkDevice device,
+    const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
+    VkPerformanceConfigurationINTEL* pConfiguration)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkAcquirePerformanceConfigurationINTEL", "VK_INTEL_performance_query");
+    }
+    AEMU_SCOPED_TRACE("vkAcquirePerformanceConfigurationINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquirePerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    vkAcquirePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, true /* do lock */);
+    return vkAcquirePerformanceConfigurationINTEL_VkResult_return;
+}
+static VkResult entry_vkReleasePerformanceConfigurationINTEL(
+    VkDevice device,
+    VkPerformanceConfigurationINTEL configuration)
+{
+    AEMU_SCOPED_TRACE("vkReleasePerformanceConfigurationINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkReleasePerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    vkReleasePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkReleasePerformanceConfigurationINTEL(device, configuration, true /* do lock */);
+    return vkReleasePerformanceConfigurationINTEL_VkResult_return;
+}
+static VkResult dynCheck_entry_vkReleasePerformanceConfigurationINTEL(
+    VkDevice device,
+    VkPerformanceConfigurationINTEL configuration)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkReleasePerformanceConfigurationINTEL", "VK_INTEL_performance_query");
+    }
+    AEMU_SCOPED_TRACE("vkReleasePerformanceConfigurationINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkReleasePerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    vkReleasePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkReleasePerformanceConfigurationINTEL(device, configuration, true /* do lock */);
+    return vkReleasePerformanceConfigurationINTEL_VkResult_return;
+}
+static VkResult entry_vkQueueSetPerformanceConfigurationINTEL(
+    VkQueue queue,
+    VkPerformanceConfigurationINTEL configuration)
+{
+    AEMU_SCOPED_TRACE("vkQueueSetPerformanceConfigurationINTEL");
+    auto vkEnc = ResourceTracker::getQueueEncoder(queue);
+    VkResult vkQueueSetPerformanceConfigurationINTEL_VkResult_return = (VkResult)0;
+    vkQueueSetPerformanceConfigurationINTEL_VkResult_return = vkEnc->vkQueueSetPerformanceConfigurationINTEL(queue, configuration, true /* do lock */);
+    return vkQueueSetPerformanceConfigurationINTEL_VkResult_return;
+}
+static VkResult entry_vkGetPerformanceParameterINTEL(
+    VkDevice device,
+    VkPerformanceParameterTypeINTEL parameter,
+    VkPerformanceValueINTEL* pValue)
+{
+    AEMU_SCOPED_TRACE("vkGetPerformanceParameterINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPerformanceParameterINTEL_VkResult_return = (VkResult)0;
+    vkGetPerformanceParameterINTEL_VkResult_return = vkEnc->vkGetPerformanceParameterINTEL(device, parameter, pValue, true /* do lock */);
+    return vkGetPerformanceParameterINTEL_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetPerformanceParameterINTEL(
+    VkDevice device,
+    VkPerformanceParameterTypeINTEL parameter,
+    VkPerformanceValueINTEL* pValue)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetPerformanceParameterINTEL", "VK_INTEL_performance_query");
+    }
+    AEMU_SCOPED_TRACE("vkGetPerformanceParameterINTEL");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPerformanceParameterINTEL_VkResult_return = (VkResult)0;
+    vkGetPerformanceParameterINTEL_VkResult_return = vkEnc->vkGetPerformanceParameterINTEL(device, parameter, pValue, true /* do lock */);
+    return vkGetPerformanceParameterINTEL_VkResult_return;
+}
+#endif
+#ifdef VK_EXT_pci_bus_info
+#endif
+#ifdef VK_AMD_display_native_hdr
+static void entry_vkSetLocalDimmingAMD(
+    VkDevice device,
+    VkSwapchainKHR swapChain,
+    VkBool32 localDimmingEnable)
+{
+    AEMU_SCOPED_TRACE("vkSetLocalDimmingAMD");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, true /* do lock */);
+}
+static void dynCheck_entry_vkSetLocalDimmingAMD(
+    VkDevice device,
+    VkSwapchainKHR swapChain,
+    VkBool32 localDimmingEnable)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_AMD_display_native_hdr"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkSetLocalDimmingAMD", "VK_AMD_display_native_hdr");
+    }
+    AEMU_SCOPED_TRACE("vkSetLocalDimmingAMD");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, true /* do lock */);
+}
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+static VkResult entry_vkCreateImagePipeSurfaceFUCHSIA(
+    VkInstance instance,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface)
+{
+    AEMU_SCOPED_TRACE("vkCreateImagePipeSurfaceFUCHSIA");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateImagePipeSurfaceFUCHSIA_VkResult_return = (VkResult)0;
+    vkCreateImagePipeSurfaceFUCHSIA_VkResult_return = vkEnc->vkCreateImagePipeSurfaceFUCHSIA(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
+    return vkCreateImagePipeSurfaceFUCHSIA_VkResult_return;
+}
+#endif
+#ifdef VK_EXT_metal_surface
+static VkResult entry_vkCreateMetalSurfaceEXT(
+    VkInstance instance,
+    const VkMetalSurfaceCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface)
+{
+    AEMU_SCOPED_TRACE("vkCreateMetalSurfaceEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateMetalSurfaceEXT_VkResult_return = (VkResult)0;
+    vkCreateMetalSurfaceEXT_VkResult_return = vkEnc->vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
+    return vkCreateMetalSurfaceEXT_VkResult_return;
 }
 #endif
 #ifdef VK_GOOGLE_color_buffer
@@ -5012,7 +6489,664 @@
     return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
 }
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+#endif
+#ifdef VK_GOOGLE_hlsl_functionality1
+#endif
+#ifdef VK_GOOGLE_decorate_string
+#endif
+#ifdef VK_EXT_subgroup_size_control
+#endif
+#ifdef VK_AMD_shader_core_properties2
+#endif
+#ifdef VK_AMD_device_coherent_memory
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+#endif
+#ifdef VK_EXT_memory_budget
+#endif
+#ifdef VK_EXT_memory_priority
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+#endif
+#ifdef VK_EXT_buffer_device_address
+static VkDeviceAddress entry_vkGetBufferDeviceAddressEXT(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressEXT(device, pInfo, true /* do lock */);
+    return vkGetBufferDeviceAddressEXT_VkDeviceAddress_return;
+}
+static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddressEXT(
+    VkDevice device,
+    const VkBufferDeviceAddressInfo* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_buffer_device_address"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddressEXT", "VK_EXT_buffer_device_address");
+    }
+    AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressEXT(device, pInfo, true /* do lock */);
+    return vkGetBufferDeviceAddressEXT_VkDeviceAddress_return;
+}
+#endif
+#ifdef VK_EXT_tooling_info
+static VkResult entry_vkGetPhysicalDeviceToolPropertiesEXT(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pToolCount,
+    VkPhysicalDeviceToolPropertiesEXT* pToolProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceToolPropertiesEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return = vkEnc->vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, true /* do lock */);
+    return vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return;
+}
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+#endif
+#ifdef VK_NV_cooperative_matrix
+static VkResult entry_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pPropertyCount,
+    VkCooperativeMatrixPropertiesNV* pProperties)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, true /* do lock */);
+    return vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return;
+}
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+static VkResult entry_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
+    VkPhysicalDevice physicalDevice,
+    uint32_t* pCombinationCount,
+    VkFramebufferMixedSamplesCombinationNV* pCombinations)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return = vkEnc->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, true /* do lock */);
+    return vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return;
+}
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+static VkResult entry_vkGetPhysicalDeviceSurfacePresentModes2EXT(
+    VkPhysicalDevice physicalDevice,
+    const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
+    uint32_t* pPresentModeCount,
+    VkPresentModeKHR* pPresentModes)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModes2EXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return = (VkResult)0;
+    vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes, true /* do lock */);
+    return vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return;
+}
+static VkResult entry_vkAcquireFullScreenExclusiveModeEXT(
+    VkDevice device,
+    VkSwapchainKHR swapchain)
+{
+    AEMU_SCOPED_TRACE("vkAcquireFullScreenExclusiveModeEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquireFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0;
+    vkAcquireFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkAcquireFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */);
+    return vkAcquireFullScreenExclusiveModeEXT_VkResult_return;
+}
+static VkResult dynCheck_entry_vkAcquireFullScreenExclusiveModeEXT(
+    VkDevice device,
+    VkSwapchainKHR swapchain)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkAcquireFullScreenExclusiveModeEXT", "VK_EXT_full_screen_exclusive");
+    }
+    AEMU_SCOPED_TRACE("vkAcquireFullScreenExclusiveModeEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkAcquireFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0;
+    vkAcquireFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkAcquireFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */);
+    return vkAcquireFullScreenExclusiveModeEXT_VkResult_return;
+}
+static VkResult entry_vkReleaseFullScreenExclusiveModeEXT(
+    VkDevice device,
+    VkSwapchainKHR swapchain)
+{
+    AEMU_SCOPED_TRACE("vkReleaseFullScreenExclusiveModeEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkReleaseFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0;
+    vkReleaseFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkReleaseFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */);
+    return vkReleaseFullScreenExclusiveModeEXT_VkResult_return;
+}
+static VkResult dynCheck_entry_vkReleaseFullScreenExclusiveModeEXT(
+    VkDevice device,
+    VkSwapchainKHR swapchain)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkReleaseFullScreenExclusiveModeEXT", "VK_EXT_full_screen_exclusive");
+    }
+    AEMU_SCOPED_TRACE("vkReleaseFullScreenExclusiveModeEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkReleaseFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0;
+    vkReleaseFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkReleaseFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */);
+    return vkReleaseFullScreenExclusiveModeEXT_VkResult_return;
+}
+static VkResult entry_vkGetDeviceGroupSurfacePresentModes2EXT(
+    VkDevice device,
+    const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
+    VkDeviceGroupPresentModeFlagsKHR* pModes)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModes2EXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = (VkResult)0;
+    vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes, true /* do lock */);
+    return vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetDeviceGroupSurfacePresentModes2EXT(
+    VkDevice device,
+    const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
+    VkDeviceGroupPresentModeFlagsKHR* pModes)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupSurfacePresentModes2EXT", "VK_EXT_full_screen_exclusive");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModes2EXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = (VkResult)0;
+    vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes, true /* do lock */);
+    return vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return;
+}
+#endif
+#ifdef VK_EXT_headless_surface
+static VkResult entry_vkCreateHeadlessSurfaceEXT(
+    VkInstance instance,
+    const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface)
+{
+    AEMU_SCOPED_TRACE("vkCreateHeadlessSurfaceEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateHeadlessSurfaceEXT_VkResult_return = (VkResult)0;
+    vkCreateHeadlessSurfaceEXT_VkResult_return = vkEnc->vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
+    return vkCreateHeadlessSurfaceEXT_VkResult_return;
+}
+#endif
+#ifdef VK_EXT_line_rasterization
+static void entry_vkCmdSetLineStippleEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t lineStippleFactor,
+    uint16_t lineStipplePattern)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetLineStippleEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_shader_atomic_float
+#endif
+#ifdef VK_EXT_host_query_reset
+static void entry_vkResetQueryPoolEXT(
+    VkDevice device,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t queryCount)
+{
+    AEMU_SCOPED_TRACE("vkResetQueryPoolEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, true /* do lock */);
+}
+static void dynCheck_entry_vkResetQueryPoolEXT(
+    VkDevice device,
+    VkQueryPool queryPool,
+    uint32_t firstQuery,
+    uint32_t queryCount)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_host_query_reset"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkResetQueryPoolEXT", "VK_EXT_host_query_reset");
+    }
+    AEMU_SCOPED_TRACE("vkResetQueryPoolEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_index_type_uint8
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+static void entry_vkCmdSetCullModeEXT(
+    VkCommandBuffer commandBuffer,
+    VkCullModeFlags cullMode)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetCullModeEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetCullModeEXT(commandBuffer, cullMode, true /* do lock */);
+}
+static void entry_vkCmdSetFrontFaceEXT(
+    VkCommandBuffer commandBuffer,
+    VkFrontFace frontFace)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetFrontFaceEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetFrontFaceEXT(commandBuffer, frontFace, true /* do lock */);
+}
+static void entry_vkCmdSetPrimitiveTopologyEXT(
+    VkCommandBuffer commandBuffer,
+    VkPrimitiveTopology primitiveTopology)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetPrimitiveTopologyEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, true /* do lock */);
+}
+static void entry_vkCmdSetViewportWithCountEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t viewportCount,
+    const VkViewport* pViewports)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetViewportWithCountEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, true /* do lock */);
+}
+static void entry_vkCmdSetScissorWithCountEXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t scissorCount,
+    const VkRect2D* pScissors)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetScissorWithCountEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, true /* do lock */);
+}
+static void entry_vkCmdBindVertexBuffers2EXT(
+    VkCommandBuffer commandBuffer,
+    uint32_t firstBinding,
+    uint32_t bindingCount,
+    const VkBuffer* pBuffers,
+    const VkDeviceSize* pOffsets,
+    const VkDeviceSize* pSizes,
+    const VkDeviceSize* pStrides)
+{
+    AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers2EXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, true /* do lock */);
+}
+static void entry_vkCmdSetDepthTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthTestEnable)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetDepthTestEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, true /* do lock */);
+}
+static void entry_vkCmdSetDepthWriteEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthWriteEnable)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetDepthWriteEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, true /* do lock */);
+}
+static void entry_vkCmdSetDepthCompareOpEXT(
+    VkCommandBuffer commandBuffer,
+    VkCompareOp depthCompareOp)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetDepthCompareOpEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, true /* do lock */);
+}
+static void entry_vkCmdSetDepthBoundsTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 depthBoundsTestEnable)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetDepthBoundsTestEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, true /* do lock */);
+}
+static void entry_vkCmdSetStencilTestEnableEXT(
+    VkCommandBuffer commandBuffer,
+    VkBool32 stencilTestEnable)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetStencilTestEnableEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, true /* do lock */);
+}
+static void entry_vkCmdSetStencilOpEXT(
+    VkCommandBuffer commandBuffer,
+    VkStencilFaceFlags faceMask,
+    VkStencilOp failOp,
+    VkStencilOp passOp,
+    VkStencilOp depthFailOp,
+    VkCompareOp compareOp)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetStencilOpEXT");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+#endif
+#ifdef VK_NV_device_generated_commands
+static void entry_vkGetGeneratedCommandsMemoryRequirementsNV(
+    VkDevice device,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2* pMemoryRequirements)
+{
+    AEMU_SCOPED_TRACE("vkGetGeneratedCommandsMemoryRequirementsNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static void dynCheck_entry_vkGetGeneratedCommandsMemoryRequirementsNV(
+    VkDevice device,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
+    VkMemoryRequirements2* pMemoryRequirements)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetGeneratedCommandsMemoryRequirementsNV", "VK_NV_device_generated_commands");
+    }
+    AEMU_SCOPED_TRACE("vkGetGeneratedCommandsMemoryRequirementsNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */);
+}
+static void entry_vkCmdPreprocessGeneratedCommandsNV(
+    VkCommandBuffer commandBuffer,
+    const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdPreprocessGeneratedCommandsNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, true /* do lock */);
+}
+static void entry_vkCmdExecuteGeneratedCommandsNV(
+    VkCommandBuffer commandBuffer,
+    VkBool32 isPreprocessed,
+    const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdExecuteGeneratedCommandsNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, true /* do lock */);
+}
+static void entry_vkCmdBindPipelineShaderGroupNV(
+    VkCommandBuffer commandBuffer,
+    VkPipelineBindPoint pipelineBindPoint,
+    VkPipeline pipeline,
+    uint32_t groupIndex)
+{
+    AEMU_SCOPED_TRACE("vkCmdBindPipelineShaderGroupNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, true /* do lock */);
+}
+static VkResult entry_vkCreateIndirectCommandsLayoutNV(
+    VkDevice device,
+    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkIndirectCommandsLayoutNV* pIndirectCommandsLayout)
+{
+    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateIndirectCommandsLayoutNV_VkResult_return = (VkResult)0;
+    vkCreateIndirectCommandsLayoutNV_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, true /* do lock */);
+    return vkCreateIndirectCommandsLayoutNV_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateIndirectCommandsLayoutNV(
+    VkDevice device,
+    const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkIndirectCommandsLayoutNV* pIndirectCommandsLayout)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateIndirectCommandsLayoutNV", "VK_NV_device_generated_commands");
+    }
+    AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateIndirectCommandsLayoutNV_VkResult_return = (VkResult)0;
+    vkCreateIndirectCommandsLayoutNV_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, true /* do lock */);
+    return vkCreateIndirectCommandsLayoutNV_VkResult_return;
+}
+static void entry_vkDestroyIndirectCommandsLayoutNV(
+    VkDevice device,
+    VkIndirectCommandsLayoutNV indirectCommandsLayout,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyIndirectCommandsLayoutNV(
+    VkDevice device,
+    VkIndirectCommandsLayoutNV indirectCommandsLayout,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyIndirectCommandsLayoutNV", "VK_NV_device_generated_commands");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNV");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+#endif
+#ifdef VK_QCOM_render_pass_transform
+#endif
+#ifdef VK_EXT_device_memory_report
+#endif
+#ifdef VK_EXT_robustness2
+#endif
+#ifdef VK_EXT_custom_border_color
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+static VkResult entry_vkCreatePrivateDataSlotEXT(
+    VkDevice device,
+    const VkPrivateDataSlotCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkPrivateDataSlotEXT* pPrivateDataSlot)
+{
+    AEMU_SCOPED_TRACE("vkCreatePrivateDataSlotEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreatePrivateDataSlotEXT_VkResult_return = (VkResult)0;
+    vkCreatePrivateDataSlotEXT_VkResult_return = vkEnc->vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */);
+    return vkCreatePrivateDataSlotEXT_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreatePrivateDataSlotEXT(
+    VkDevice device,
+    const VkPrivateDataSlotCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkPrivateDataSlotEXT* pPrivateDataSlot)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_private_data"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreatePrivateDataSlotEXT", "VK_EXT_private_data");
+    }
+    AEMU_SCOPED_TRACE("vkCreatePrivateDataSlotEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreatePrivateDataSlotEXT_VkResult_return = (VkResult)0;
+    vkCreatePrivateDataSlotEXT_VkResult_return = vkEnc->vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */);
+    return vkCreatePrivateDataSlotEXT_VkResult_return;
+}
+static void entry_vkDestroyPrivateDataSlotEXT(
+    VkDevice device,
+    VkPrivateDataSlotEXT privateDataSlot,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlotEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyPrivateDataSlotEXT(
+    VkDevice device,
+    VkPrivateDataSlotEXT privateDataSlot,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_private_data"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyPrivateDataSlotEXT", "VK_EXT_private_data");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlotEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, true /* do lock */);
+}
+static VkResult entry_vkSetPrivateDataEXT(
+    VkDevice device,
+    VkObjectType objectType,
+    uint64_t objectHandle,
+    VkPrivateDataSlotEXT privateDataSlot,
+    uint64_t data)
+{
+    AEMU_SCOPED_TRACE("vkSetPrivateDataEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSetPrivateDataEXT_VkResult_return = (VkResult)0;
+    vkSetPrivateDataEXT_VkResult_return = vkEnc->vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, true /* do lock */);
+    return vkSetPrivateDataEXT_VkResult_return;
+}
+static VkResult dynCheck_entry_vkSetPrivateDataEXT(
+    VkDevice device,
+    VkObjectType objectType,
+    uint64_t objectHandle,
+    VkPrivateDataSlotEXT privateDataSlot,
+    uint64_t data)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_private_data"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkSetPrivateDataEXT", "VK_EXT_private_data");
+    }
+    AEMU_SCOPED_TRACE("vkSetPrivateDataEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkSetPrivateDataEXT_VkResult_return = (VkResult)0;
+    vkSetPrivateDataEXT_VkResult_return = vkEnc->vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, true /* do lock */);
+    return vkSetPrivateDataEXT_VkResult_return;
+}
+static void entry_vkGetPrivateDataEXT(
+    VkDevice device,
+    VkObjectType objectType,
+    uint64_t objectHandle,
+    VkPrivateDataSlotEXT privateDataSlot,
+    uint64_t* pData)
+{
+    AEMU_SCOPED_TRACE("vkGetPrivateDataEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, true /* do lock */);
+}
+static void dynCheck_entry_vkGetPrivateDataEXT(
+    VkDevice device,
+    VkObjectType objectType,
+    uint64_t objectHandle,
+    VkPrivateDataSlotEXT privateDataSlot,
+    uint64_t* pData)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_EXT_private_data"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetPrivateDataEXT", "VK_EXT_private_data");
+    }
+    AEMU_SCOPED_TRACE("vkGetPrivateDataEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+#endif
+#ifdef VK_NV_device_diagnostics_config
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+static void entry_vkCmdSetFragmentShadingRateEnumNV(
+    VkCommandBuffer commandBuffer,
+    VkFragmentShadingRateNV shadingRate,
+    const VkFragmentShadingRateCombinerOpKHR combinerOps[2])
+{
+    AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateEnumNV");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */);
+}
+#endif
+#ifdef VK_EXT_fragment_density_map2
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+#endif
+#ifdef VK_EXT_image_robustness
+#endif
+#ifdef VK_EXT_4444_formats
+#endif
+#ifdef VK_EXT_directfb_surface
+static VkResult entry_vkCreateDirectFBSurfaceEXT(
+    VkInstance instance,
+    const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkSurfaceKHR* pSurface)
+{
+    AEMU_SCOPED_TRACE("vkCreateDirectFBSurfaceEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateDirectFBSurfaceEXT_VkResult_return = (VkResult)0;
+    vkCreateDirectFBSurfaceEXT_VkResult_return = vkEnc->vkCreateDirectFBSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
+    return vkCreateDirectFBSurfaceEXT_VkResult_return;
+}
+static VkBool32 entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT(
+    VkPhysicalDevice physicalDevice,
+    uint32_t queueFamilyIndex,
+    IDirectFB* dfb)
+{
+    AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDirectFBPresentationSupportEXT");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return = (VkBool32)0;
+    vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return = vkEnc->vkGetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice, queueFamilyIndex, dfb, true /* do lock */);
+    return vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return;
+}
+#endif
+#ifdef VK_GOOGLE_gfxstream
+static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
+    VkDevice device,
+    VkDeviceMemory memory,
+    uint64_t* pAddress)
+{
+    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
+    vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress, true /* do lock */);
+    return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
+}
+static VkResult dynCheck_entry_vkMapMemoryIntoAddressSpaceGOOGLE(
+    VkDevice device,
+    VkDeviceMemory memory,
+    uint64_t* pAddress)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkMapMemoryIntoAddressSpaceGOOGLE", "VK_GOOGLE_gfxstream");
+    }
+    AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
+    vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress, true /* do lock */);
+    return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
+}
 static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
     VkDevice device,
     VkDescriptorSet descriptorSet,
@@ -5046,16 +7180,14 @@
     const VkBufferView* pBufferViews)
 {
     auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template"))
+    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
     {
-        sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplateSizedGOOGLE", "VK_GOOGLE_sized_descriptor_update_template");
+        sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplateSizedGOOGLE", "VK_GOOGLE_gfxstream");
     }
     AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
     vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews, true /* do lock */);
 }
-#endif
-#ifdef VK_GOOGLE_async_command_buffers
 static void entry_vkBeginCommandBufferAsyncGOOGLE(
     VkCommandBuffer commandBuffer,
     const VkCommandBufferBeginInfo* pBeginInfo)
@@ -5088,8 +7220,6 @@
     auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
     vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber, true /* do lock */);
 }
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
 static VkResult entry_vkCreateImageWithRequirementsGOOGLE(
     VkDevice device,
     const VkImageCreateInfo* pCreateInfo,
@@ -5111,9 +7241,9 @@
     VkMemoryRequirements* pMemoryRequirements)
 {
     auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements"))
+    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
     {
-        sOnInvalidDynamicallyCheckedCall("vkCreateImageWithRequirementsGOOGLE", "VK_GOOGLE_create_resources_with_requirements");
+        sOnInvalidDynamicallyCheckedCall("vkCreateImageWithRequirementsGOOGLE", "VK_GOOGLE_gfxstream");
     }
     AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
@@ -5142,9 +7272,9 @@
     VkMemoryRequirements* pMemoryRequirements)
 {
     auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements"))
+    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
     {
-        sOnInvalidDynamicallyCheckedCall("vkCreateBufferWithRequirementsGOOGLE", "VK_GOOGLE_create_resources_with_requirements");
+        sOnInvalidDynamicallyCheckedCall("vkCreateBufferWithRequirementsGOOGLE", "VK_GOOGLE_gfxstream");
     }
     AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
@@ -5152,8 +7282,6 @@
     vkCreateBufferWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, pMemoryRequirements, true /* do lock */);
     return vkCreateBufferWithRequirementsGOOGLE_VkResult_return;
 }
-#endif
-#ifdef VK_GOOGLE_address_space_info
 static VkResult entry_vkGetMemoryHostAddressInfoGOOGLE(
     VkDevice device,
     VkDeviceMemory memory,
@@ -5175,9 +7303,9 @@
     uint64_t* pHostmemId)
 {
     auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_address_space_info"))
+    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
     {
-        sOnInvalidDynamicallyCheckedCall("vkGetMemoryHostAddressInfoGOOGLE", "VK_GOOGLE_address_space_info");
+        sOnInvalidDynamicallyCheckedCall("vkGetMemoryHostAddressInfoGOOGLE", "VK_GOOGLE_gfxstream");
     }
     AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
@@ -5185,8 +7313,6 @@
     vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = vkEnc->vkGetMemoryHostAddressInfoGOOGLE(device, memory, pAddress, pSize, pHostmemId, true /* do lock */);
     return vkGetMemoryHostAddressInfoGOOGLE_VkResult_return;
 }
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
 static VkResult entry_vkFreeMemorySyncGOOGLE(
     VkDevice device,
     VkDeviceMemory memory,
@@ -5204,9 +7330,9 @@
     const VkAllocationCallbacks* pAllocator)
 {
     auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_free_memory_sync"))
+    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
     {
-        sOnInvalidDynamicallyCheckedCall("vkFreeMemorySyncGOOGLE", "VK_GOOGLE_free_memory_sync");
+        sOnInvalidDynamicallyCheckedCall("vkFreeMemorySyncGOOGLE", "VK_GOOGLE_gfxstream");
     }
     AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
@@ -5214,8 +7340,6 @@
     vkFreeMemorySyncGOOGLE_VkResult_return = vkEnc->vkFreeMemorySyncGOOGLE(device, memory, pAllocator, true /* do lock */);
     return vkFreeMemorySyncGOOGLE_VkResult_return;
 }
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
 static void entry_vkQueueHostSyncGOOGLE(
     VkQueue queue,
     uint32_t needHostSync,
@@ -5252,8 +7376,6 @@
     auto vkEnc = ResourceTracker::getQueueEncoder(queue);
     vkEnc->vkQueueBindSparseAsyncGOOGLE(queue, bindInfoCount, pBindInfo, fence, true /* do lock */);
 }
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
 static void entry_vkGetLinearImageLayoutGOOGLE(
     VkDevice device,
     VkFormat format,
@@ -5271,70 +7393,14 @@
     VkDeviceSize* pRowPitchAlignment)
 {
     auto resources = ResourceTracker::get();
-    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_linear_image_layout"))
+    if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"))
     {
-        sOnInvalidDynamicallyCheckedCall("vkGetLinearImageLayoutGOOGLE", "VK_GOOGLE_linear_image_layout");
+        sOnInvalidDynamicallyCheckedCall("vkGetLinearImageLayoutGOOGLE", "VK_GOOGLE_gfxstream");
     }
     AEMU_SCOPED_TRACE("vkGetLinearImageLayoutGOOGLE");
     auto vkEnc = ResourceTracker::getThreadLocalEncoder();
     vkEnc->vkGetLinearImageLayoutGOOGLE(device, format, pOffset, pRowPitchAlignment, true /* do lock */);
 }
-#endif
-#ifdef VK_MVK_moltenvk
-static void entry_vkGetMTLDeviceMVK(
-    VkPhysicalDevice physicalDevice,
-    void** pMTLDevice)
-{
-    AEMU_SCOPED_TRACE("vkGetMTLDeviceMVK");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkGetMTLDeviceMVK(physicalDevice, pMTLDevice, true /* do lock */);
-}
-static VkResult entry_vkSetMTLTextureMVK(
-    VkImage image,
-    void* mtlTexture)
-{
-    AEMU_SCOPED_TRACE("vkSetMTLTextureMVK");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkSetMTLTextureMVK_VkResult_return = (VkResult)0;
-    vkSetMTLTextureMVK_VkResult_return = vkEnc->vkSetMTLTextureMVK(image, mtlTexture, true /* do lock */);
-    return vkSetMTLTextureMVK_VkResult_return;
-}
-static void entry_vkGetMTLTextureMVK(
-    VkImage image,
-    void** pMTLTexture)
-{
-    AEMU_SCOPED_TRACE("vkGetMTLTextureMVK");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkGetMTLTextureMVK(image, pMTLTexture, true /* do lock */);
-}
-static void entry_vkGetMTLBufferMVK(
-    VkBuffer buffer,
-    void** pMTLBuffer)
-{
-    AEMU_SCOPED_TRACE("vkGetMTLBufferMVK");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkGetMTLBufferMVK(buffer, pMTLBuffer, true /* do lock */);
-}
-static VkResult entry_vkUseIOSurfaceMVK(
-    VkImage image,
-    void* ioSurface)
-{
-    AEMU_SCOPED_TRACE("vkUseIOSurfaceMVK");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    VkResult vkUseIOSurfaceMVK_VkResult_return = (VkResult)0;
-    vkUseIOSurfaceMVK_VkResult_return = vkEnc->vkUseIOSurfaceMVK(image, ioSurface, true /* do lock */);
-    return vkUseIOSurfaceMVK_VkResult_return;
-}
-static void entry_vkGetIOSurfaceMVK(
-    VkImage image,
-    void** pIOSurface)
-{
-    AEMU_SCOPED_TRACE("vkGetIOSurfaceMVK");
-    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
-    vkEnc->vkGetIOSurfaceMVK(image, pIOSurface, true /* do lock */);
-}
-#endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
 static void entry_vkQueueFlushCommandsGOOGLE(
     VkQueue queue,
     VkCommandBuffer commandBuffer,
@@ -5346,6 +7412,475 @@
     vkEnc->vkQueueFlushCommandsGOOGLE(queue, commandBuffer, dataSize, pData, true /* do lock */);
 }
 #endif
+#ifdef VK_KHR_acceleration_structure
+static VkResult entry_vkCreateAccelerationStructureKHR(
+    VkDevice device,
+    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkAccelerationStructureKHR* pAccelerationStructure)
+{
+    AEMU_SCOPED_TRACE("vkCreateAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    vkCreateAccelerationStructureKHR_VkResult_return = vkEnc->vkCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */);
+    return vkCreateAccelerationStructureKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateAccelerationStructureKHR(
+    VkDevice device,
+    const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
+    const VkAllocationCallbacks* pAllocator,
+    VkAccelerationStructureKHR* pAccelerationStructure)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateAccelerationStructureKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkCreateAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    vkCreateAccelerationStructureKHR_VkResult_return = vkEnc->vkCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */);
+    return vkCreateAccelerationStructureKHR_VkResult_return;
+}
+static void entry_vkDestroyAccelerationStructureKHR(
+    VkDevice device,
+    VkAccelerationStructureKHR accelerationStructure,
+    const VkAllocationCallbacks* pAllocator)
+{
+    AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator, true /* do lock */);
+}
+static void dynCheck_entry_vkDestroyAccelerationStructureKHR(
+    VkDevice device,
+    VkAccelerationStructureKHR accelerationStructure,
+    const VkAllocationCallbacks* pAllocator)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkDestroyAccelerationStructureKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkDestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator, true /* do lock */);
+}
+static void entry_vkCmdBuildAccelerationStructuresKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
+{
+    AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */);
+}
+static void entry_vkCmdBuildAccelerationStructuresIndirectKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkDeviceAddress* pIndirectDeviceAddresses,
+    const uint32_t* pIndirectStrides,
+    const uint32_t* const* ppMaxPrimitiveCounts)
+{
+    AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresIndirectKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts, true /* do lock */);
+}
+static VkResult entry_vkBuildAccelerationStructuresKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    uint32_t infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
+{
+    AEMU_SCOPED_TRACE("vkBuildAccelerationStructuresKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkBuildAccelerationStructuresKHR_VkResult_return = (VkResult)0;
+    vkBuildAccelerationStructuresKHR_VkResult_return = vkEnc->vkBuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */);
+    return vkBuildAccelerationStructuresKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkBuildAccelerationStructuresKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    uint32_t infoCount,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
+    const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkBuildAccelerationStructuresKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkBuildAccelerationStructuresKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkBuildAccelerationStructuresKHR_VkResult_return = (VkResult)0;
+    vkBuildAccelerationStructuresKHR_VkResult_return = vkEnc->vkBuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */);
+    return vkBuildAccelerationStructuresKHR_VkResult_return;
+}
+static VkResult entry_vkCopyAccelerationStructureKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyAccelerationStructureInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkCopyAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCopyAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    vkCopyAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */);
+    return vkCopyAccelerationStructureKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCopyAccelerationStructureKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyAccelerationStructureInfoKHR* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCopyAccelerationStructureKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkCopyAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCopyAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    vkCopyAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */);
+    return vkCopyAccelerationStructureKHR_VkResult_return;
+}
+static VkResult entry_vkCopyAccelerationStructureToMemoryKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkCopyAccelerationStructureToMemoryKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCopyAccelerationStructureToMemoryKHR_VkResult_return = (VkResult)0;
+    vkCopyAccelerationStructureToMemoryKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo, true /* do lock */);
+    return vkCopyAccelerationStructureToMemoryKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCopyAccelerationStructureToMemoryKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCopyAccelerationStructureToMemoryKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkCopyAccelerationStructureToMemoryKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCopyAccelerationStructureToMemoryKHR_VkResult_return = (VkResult)0;
+    vkCopyAccelerationStructureToMemoryKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo, true /* do lock */);
+    return vkCopyAccelerationStructureToMemoryKHR_VkResult_return;
+}
+static VkResult entry_vkCopyMemoryToAccelerationStructureKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkCopyMemoryToAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCopyMemoryToAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    vkCopyMemoryToAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */);
+    return vkCopyMemoryToAccelerationStructureKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCopyMemoryToAccelerationStructureKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCopyMemoryToAccelerationStructureKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkCopyMemoryToAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCopyMemoryToAccelerationStructureKHR_VkResult_return = (VkResult)0;
+    vkCopyMemoryToAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */);
+    return vkCopyMemoryToAccelerationStructureKHR_VkResult_return;
+}
+static VkResult entry_vkWriteAccelerationStructuresPropertiesKHR(
+    VkDevice device,
+    uint32_t accelerationStructureCount,
+    const VkAccelerationStructureKHR* pAccelerationStructures,
+    VkQueryType queryType,
+    size_t dataSize,
+    void* pData,
+    size_t stride)
+{
+    AEMU_SCOPED_TRACE("vkWriteAccelerationStructuresPropertiesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = (VkResult)0;
+    vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = vkEnc->vkWriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride, true /* do lock */);
+    return vkWriteAccelerationStructuresPropertiesKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkWriteAccelerationStructuresPropertiesKHR(
+    VkDevice device,
+    uint32_t accelerationStructureCount,
+    const VkAccelerationStructureKHR* pAccelerationStructures,
+    VkQueryType queryType,
+    size_t dataSize,
+    void* pData,
+    size_t stride)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkWriteAccelerationStructuresPropertiesKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkWriteAccelerationStructuresPropertiesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = (VkResult)0;
+    vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = vkEnc->vkWriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride, true /* do lock */);
+    return vkWriteAccelerationStructuresPropertiesKHR_VkResult_return;
+}
+static void entry_vkCmdCopyAccelerationStructureKHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyAccelerationStructureInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
+}
+static void entry_vkCmdCopyAccelerationStructureToMemoryKHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureToMemoryKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo, true /* do lock */);
+}
+static void entry_vkCmdCopyMemoryToAccelerationStructureKHR(
+    VkCommandBuffer commandBuffer,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkCmdCopyMemoryToAccelerationStructureKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */);
+}
+static VkDeviceAddress entry_vkGetAccelerationStructureDeviceAddressKHR(
+    VkDevice device,
+    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureDeviceAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetAccelerationStructureDeviceAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return;
+}
+static VkDeviceAddress dynCheck_entry_vkGetAccelerationStructureDeviceAddressKHR(
+    VkDevice device,
+    const VkAccelerationStructureDeviceAddressInfoKHR* pInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureDeviceAddressKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureDeviceAddressKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0;
+    vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetAccelerationStructureDeviceAddressKHR(device, pInfo, true /* do lock */);
+    return vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return;
+}
+static void entry_vkCmdWriteAccelerationStructuresPropertiesKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t accelerationStructureCount,
+    const VkAccelerationStructureKHR* pAccelerationStructures,
+    VkQueryType queryType,
+    VkQueryPool queryPool,
+    uint32_t firstQuery)
+{
+    AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */);
+}
+static void entry_vkGetDeviceAccelerationStructureCompatibilityKHR(
+    VkDevice device,
+    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
+    VkAccelerationStructureCompatibilityKHR* pCompatibility)
+{
+    AEMU_SCOPED_TRACE("vkGetDeviceAccelerationStructureCompatibilityKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility, true /* do lock */);
+}
+static void dynCheck_entry_vkGetDeviceAccelerationStructureCompatibilityKHR(
+    VkDevice device,
+    const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
+    VkAccelerationStructureCompatibilityKHR* pCompatibility)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetDeviceAccelerationStructureCompatibilityKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkGetDeviceAccelerationStructureCompatibilityKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility, true /* do lock */);
+}
+static void entry_vkGetAccelerationStructureBuildSizesKHR(
+    VkDevice device,
+    VkAccelerationStructureBuildTypeKHR buildType,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
+    const uint32_t* pMaxPrimitiveCounts,
+    VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo)
+{
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureBuildSizesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo, true /* do lock */);
+}
+static void dynCheck_entry_vkGetAccelerationStructureBuildSizesKHR(
+    VkDevice device,
+    VkAccelerationStructureBuildTypeKHR buildType,
+    const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
+    const uint32_t* pMaxPrimitiveCounts,
+    VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureBuildSizesKHR", "VK_KHR_acceleration_structure");
+    }
+    AEMU_SCOPED_TRACE("vkGetAccelerationStructureBuildSizesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    vkEnc->vkGetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo, true /* do lock */);
+}
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+static void entry_vkCmdTraceRaysKHR(
+    VkCommandBuffer commandBuffer,
+    const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+    uint32_t width,
+    uint32_t height,
+    uint32_t depth)
+{
+    AEMU_SCOPED_TRACE("vkCmdTraceRaysKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth, true /* do lock */);
+}
+static VkResult entry_vkCreateRayTracingPipelinesKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    VkPipelineCache pipelineCache,
+    uint32_t createInfoCount,
+    const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
+    const VkAllocationCallbacks* pAllocator,
+    VkPipeline* pPipelines)
+{
+    AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateRayTracingPipelinesKHR_VkResult_return = (VkResult)0;
+    vkCreateRayTracingPipelinesKHR_VkResult_return = vkEnc->vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */);
+    return vkCreateRayTracingPipelinesKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkCreateRayTracingPipelinesKHR(
+    VkDevice device,
+    VkDeferredOperationKHR deferredOperation,
+    VkPipelineCache pipelineCache,
+    uint32_t createInfoCount,
+    const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
+    const VkAllocationCallbacks* pAllocator,
+    VkPipeline* pPipelines)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkCreateRayTracingPipelinesKHR", "VK_KHR_ray_tracing_pipeline");
+    }
+    AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkCreateRayTracingPipelinesKHR_VkResult_return = (VkResult)0;
+    vkCreateRayTracingPipelinesKHR_VkResult_return = vkEnc->vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */);
+    return vkCreateRayTracingPipelinesKHR_VkResult_return;
+}
+static VkResult entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData)
+{
+    AEMU_SCOPED_TRACE("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = (VkResult)0;
+    vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */);
+    return vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return;
+}
+static VkResult dynCheck_entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t firstGroup,
+    uint32_t groupCount,
+    size_t dataSize,
+    void* pData)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", "VK_KHR_ray_tracing_pipeline");
+    }
+    AEMU_SCOPED_TRACE("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = (VkResult)0;
+    vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */);
+    return vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return;
+}
+static void entry_vkCmdTraceRaysIndirectKHR(
+    VkCommandBuffer commandBuffer,
+    const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
+    const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
+    VkDeviceAddress indirectDeviceAddress)
+{
+    AEMU_SCOPED_TRACE("vkCmdTraceRaysIndirectKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, true /* do lock */);
+}
+static VkDeviceSize entry_vkGetRayTracingShaderGroupStackSizeKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t group,
+    VkShaderGroupShaderKHR groupShader)
+{
+    AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupStackSizeKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = (VkDeviceSize)0;
+    vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = vkEnc->vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, true /* do lock */);
+    return vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return;
+}
+static VkDeviceSize dynCheck_entry_vkGetRayTracingShaderGroupStackSizeKHR(
+    VkDevice device,
+    VkPipeline pipeline,
+    uint32_t group,
+    VkShaderGroupShaderKHR groupShader)
+{
+    auto resources = ResourceTracker::get();
+    if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"))
+    {
+        sOnInvalidDynamicallyCheckedCall("vkGetRayTracingShaderGroupStackSizeKHR", "VK_KHR_ray_tracing_pipeline");
+    }
+    AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupStackSizeKHR");
+    auto vkEnc = ResourceTracker::getThreadLocalEncoder();
+    VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = (VkDeviceSize)0;
+    vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = vkEnc->vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, true /* do lock */);
+    return vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return;
+}
+static void entry_vkCmdSetRayTracingPipelineStackSizeKHR(
+    VkCommandBuffer commandBuffer,
+    uint32_t pipelineStackSize)
+{
+    AEMU_SCOPED_TRACE("vkCmdSetRayTracingPipelineStackSizeKHR");
+    auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
+    vkEnc->vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, true /* do lock */);
+}
+#endif
+#ifdef VK_KHR_ray_query
+#endif
 void* goldfish_vulkan_get_proc_address(const char* name){
 #ifdef VK_VERSION_1_0
     if (!strcmp(name, "vkCreateInstance"))
@@ -6011,6 +8546,60 @@
         return nullptr;
     }
 #endif
+#ifdef VK_VERSION_1_2
+    if (!strcmp(name, "vkCmdDrawIndirectCount"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawIndexedIndirectCount"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCreateRenderPass2"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginRenderPass2"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdNextSubpass2"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndRenderPass2"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkResetQueryPool"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetSemaphoreCounterValue"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkWaitSemaphores"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkSignalSemaphore"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferDeviceAddress"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferOpaqueCaptureAddress"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddress"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_KHR_surface
     if (!strcmp(name, "vkDestroySurfaceKHR"))
     {
@@ -6137,16 +8726,6 @@
         return nullptr;
     }
 #endif
-#ifdef VK_KHR_mir_surface
-    if (!strcmp(name, "vkCreateMirSurfaceKHR"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
-    {
-        return nullptr;
-    }
-#endif
 #ifdef VK_KHR_android_surface
     if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
     {
@@ -6345,6 +8924,24 @@
         return nullptr;
     }
 #endif
+#ifdef VK_KHR_performance_query
+    if (!strcmp(name, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkAcquireProfilingLockKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkReleaseProfilingLockKHR"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_KHR_get_surface_capabilities2
     if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
     {
@@ -6423,6 +9020,106 @@
         return nullptr;
     }
 #endif
+#ifdef VK_KHR_timeline_semaphore
+    if (!strcmp(name, "vkGetSemaphoreCounterValueKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkWaitSemaphoresKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkSignalSemaphoreKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+    if (!strcmp(name, "vkGetPhysicalDeviceFragmentShadingRatesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_buffer_device_address
+    if (!strcmp(name, "vkGetBufferDeviceAddressKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferOpaqueCaptureAddressKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_deferred_host_operations
+    if (!strcmp(name, "vkCreateDeferredOperationKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyDeferredOperationKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeferredOperationMaxConcurrencyKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeferredOperationResultKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDeferredOperationJoinKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+    if (!strcmp(name, "vkGetPipelineExecutablePropertiesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPipelineExecutableStatisticsKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPipelineExecutableInternalRepresentationsKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_copy_commands2
+    if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyImage2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyBufferToImage2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBlitImage2KHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdResolveImage2KHR"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_ANDROID_native_buffer
     if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
     {
@@ -6473,6 +9170,42 @@
         return nullptr;
     }
 #endif
+#ifdef VK_EXT_transform_feedback
+    if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndTransformFeedbackEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginQueryIndexedEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndQueryIndexedEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NVX_image_view_handle
+    if (!strcmp(name, "vkGetImageViewHandleNVX"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetImageViewAddressNVX"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_AMD_draw_indirect_count
     if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
     {
@@ -6489,6 +9222,12 @@
         return nullptr;
     }
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+    if (!strcmp(name, "vkCreateStreamDescriptorSurfaceGGP"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_NV_external_memory_capabilities
     if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
     {
@@ -6517,44 +9256,6 @@
         return nullptr;
     }
 #endif
-#ifdef VK_NVX_device_generated_commands
-    if (!strcmp(name, "vkCmdProcessCommandsNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkCreateObjectTableNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkDestroyObjectTableNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkRegisterObjectsNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkUnregisterObjectsNVX"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
-    {
-        return nullptr;
-    }
-#endif
 #ifdef VK_NV_clip_space_w_scaling
     if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
     {
@@ -6635,6 +9336,32 @@
         return nullptr;
     }
 #endif
+#ifdef VK_MVK_moltenvk
+    if (!strcmp(name, "vkGetMTLDeviceMVK"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkSetMTLTextureMVK"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetMTLTextureMVK"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetMTLBufferMVK"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkUseIOSurfaceMVK"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetIOSurfaceMVK"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_EXT_debug_utils
     if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
     {
@@ -6701,6 +9428,12 @@
         return nullptr;
     }
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+    if (!strcmp(name, "vkGetImageDrmFormatModifierPropertiesEXT"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_EXT_validation_cache
     if (!strcmp(name, "vkCreateValidationCacheEXT"))
     {
@@ -6719,6 +9452,74 @@
         return nullptr;
     }
 #endif
+#ifdef VK_NV_shading_rate_image
+    if (!strcmp(name, "vkCmdBindShadingRateImageNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_ray_tracing
+    if (!strcmp(name, "vkCreateAccelerationStructureNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyAccelerationStructureNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureMemoryRequirementsNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkBindAccelerationStructureMemoryNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructureNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdTraceRaysNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCreateRayTracingPipelinesNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureHandleNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCompileDeferredNV"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_EXT_external_memory_host
     if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
     {
@@ -6731,6 +9532,36 @@
         return nullptr;
     }
 #endif
+#ifdef VK_EXT_calibrated_timestamps
+    if (!strcmp(name, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetCalibratedTimestampsEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_mesh_shader
+    if (!strcmp(name, "vkCmdDrawMeshTasksNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_scissor_exclusive
+    if (!strcmp(name, "vkCmdSetExclusiveScissorNV"))
+    {
+        return nullptr;
+    }
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
     if (!strcmp(name, "vkCmdSetCheckpointNV"))
     {
@@ -6741,8 +9572,58 @@
         return nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_address_space
-    if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
+#ifdef VK_INTEL_performance_query
+    if (!strcmp(name, "vkInitializePerformanceApiINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkUninitializePerformanceApiINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkReleasePerformanceConfigurationINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkQueueSetPerformanceConfigurationINTEL"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPerformanceParameterINTEL"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_AMD_display_native_hdr
+    if (!strcmp(name, "vkSetLocalDimmingAMD"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+    if (!strcmp(name, "vkCreateImagePipeSurfaceFUCHSIA"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_metal_surface
+    if (!strcmp(name, "vkCreateMetalSurfaceEXT"))
     {
         return nullptr;
     }
@@ -6757,13 +9638,185 @@
         return nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
-    if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
+#ifdef VK_EXT_buffer_device_address
+    if (!strcmp(name, "vkGetBufferDeviceAddressEXT"))
     {
         return nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_EXT_tooling_info
+    if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_cooperative_matrix
+    if (!strcmp(name, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+    if (!strcmp(name, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+    if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModes2EXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkAcquireFullScreenExclusiveModeEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkReleaseFullScreenExclusiveModeEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModes2EXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_headless_surface
+    if (!strcmp(name, "vkCreateHeadlessSurfaceEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_line_rasterization
+    if (!strcmp(name, "vkCmdSetLineStippleEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_host_query_reset
+    if (!strcmp(name, "vkResetQueryPoolEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+    if (!strcmp(name, "vkCmdSetCullModeEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetFrontFaceEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetViewportWithCountEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetScissorWithCountEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBindVertexBuffers2EXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthTestEnableEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthCompareOpEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetStencilTestEnableEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetStencilOpEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_device_generated_commands
+    if (!strcmp(name, "vkGetGeneratedCommandsMemoryRequirementsNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNV"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_private_data
+    if (!strcmp(name, "vkCreatePrivateDataSlotEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyPrivateDataSlotEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkSetPrivateDataEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPrivateDataEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+    if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_EXT_directfb_surface
+    if (!strcmp(name, "vkCreateDirectFBSurfaceEXT"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_GOOGLE_gfxstream
+    if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
+    {
+        return nullptr;
+    }
     if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
     {
         return nullptr;
@@ -6780,8 +9833,6 @@
     {
         return nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
     if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
     {
         return nullptr;
@@ -6790,20 +9841,14 @@
     {
         return nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_address_space_info
     if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE"))
     {
         return nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
     if (!strcmp(name, "vkFreeMemorySyncGOOGLE"))
     {
         return nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
     if (!strcmp(name, "vkQueueHostSyncGOOGLE"))
     {
         return nullptr;
@@ -6820,45 +9865,107 @@
     {
         return nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
     if (!strcmp(name, "vkGetLinearImageLayoutGOOGLE"))
     {
         return nullptr;
     }
-#endif
-#ifdef VK_MVK_moltenvk
-    if (!strcmp(name, "vkGetMTLDeviceMVK"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkSetMTLTextureMVK"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetMTLTextureMVK"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetMTLBufferMVK"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkUseIOSurfaceMVK"))
-    {
-        return nullptr;
-    }
-    if (!strcmp(name, "vkGetIOSurfaceMVK"))
-    {
-        return nullptr;
-    }
-#endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
     if (!strcmp(name, "vkQueueFlushCommandsGOOGLE"))
     {
         return nullptr;
     }
 #endif
+#ifdef VK_KHR_acceleration_structure
+    if (!strcmp(name, "vkCreateAccelerationStructureKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkDestroyAccelerationStructureKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkBuildAccelerationStructuresKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCopyAccelerationStructureKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCopyAccelerationStructureToMemoryKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCopyMemoryToAccelerationStructureKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkWriteAccelerationStructuresPropertiesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureBuildSizesKHR"))
+    {
+        return nullptr;
+    }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+    if (!strcmp(name, "vkCmdTraceRaysKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCreateRayTracingPipelinesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdTraceRaysIndirectKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR"))
+    {
+        return nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR"))
+    {
+        return nullptr;
+    }
+#endif
     return nullptr;
 }
 void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
@@ -7528,6 +10635,65 @@
         return (void*)dynCheck_entry_vkGetDescriptorSetLayoutSupport;
     }
 #endif
+#ifdef VK_VERSION_1_2
+    if (!strcmp(name, "vkCmdDrawIndirectCount"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectCount : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawIndexedIndirectCount"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCount : nullptr;
+    }
+    if (!strcmp(name, "vkCreateRenderPass2"))
+    {
+        return (void*)dynCheck_entry_vkCreateRenderPass2;
+    }
+    if (!strcmp(name, "vkCmdBeginRenderPass2"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdBeginRenderPass2 : nullptr;
+    }
+    if (!strcmp(name, "vkCmdNextSubpass2"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdNextSubpass2 : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndRenderPass2"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdEndRenderPass2 : nullptr;
+    }
+    if (!strcmp(name, "vkResetQueryPool"))
+    {
+        return (void*)dynCheck_entry_vkResetQueryPool;
+    }
+    if (!strcmp(name, "vkGetSemaphoreCounterValue"))
+    {
+        return (void*)dynCheck_entry_vkGetSemaphoreCounterValue;
+    }
+    if (!strcmp(name, "vkWaitSemaphores"))
+    {
+        return (void*)dynCheck_entry_vkWaitSemaphores;
+    }
+    if (!strcmp(name, "vkSignalSemaphore"))
+    {
+        return (void*)dynCheck_entry_vkSignalSemaphore;
+    }
+    if (!strcmp(name, "vkGetBufferDeviceAddress"))
+    {
+        return (void*)dynCheck_entry_vkGetBufferDeviceAddress;
+    }
+    if (!strcmp(name, "vkGetBufferOpaqueCaptureAddress"))
+    {
+        return (void*)dynCheck_entry_vkGetBufferOpaqueCaptureAddress;
+    }
+    if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddress"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress;
+    }
+#endif
 #ifdef VK_KHR_surface
     if (!strcmp(name, "vkDestroySurfaceKHR"))
     {
@@ -7674,18 +10840,6 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
     }
 #endif
-#ifdef VK_KHR_mir_surface
-    if (!strcmp(name, "vkCreateMirSurfaceKHR"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
-        return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
-    }
-    if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
-        return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
-    }
-#endif
 #ifdef VK_KHR_android_surface
     if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
     {
@@ -7905,6 +11059,26 @@
         return (void*)dynCheck_entry_vkGetFenceFdKHR;
     }
 #endif
+#ifdef VK_KHR_performance_query
+    if (!strcmp(name, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_performance_query");
+        return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_performance_query");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkAcquireProfilingLockKHR"))
+    {
+        return (void*)dynCheck_entry_vkAcquireProfilingLockKHR;
+    }
+    if (!strcmp(name, "vkReleaseProfilingLockKHR"))
+    {
+        return (void*)dynCheck_entry_vkReleaseProfilingLockKHR;
+    }
+#endif
 #ifdef VK_KHR_get_surface_capabilities2
     if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
     {
@@ -7991,6 +11165,114 @@
         return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_timeline_semaphore
+    if (!strcmp(name, "vkGetSemaphoreCounterValueKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetSemaphoreCounterValueKHR;
+    }
+    if (!strcmp(name, "vkWaitSemaphoresKHR"))
+    {
+        return (void*)dynCheck_entry_vkWaitSemaphoresKHR;
+    }
+    if (!strcmp(name, "vkSignalSemaphoreKHR"))
+    {
+        return (void*)dynCheck_entry_vkSignalSemaphoreKHR;
+    }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+    if (!strcmp(name, "vkGetPhysicalDeviceFragmentShadingRatesKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_fragment_shading_rate");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceFragmentShadingRatesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_fragment_shading_rate");
+        return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_buffer_device_address
+    if (!strcmp(name, "vkGetBufferDeviceAddressKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetBufferDeviceAddressKHR;
+    }
+    if (!strcmp(name, "vkGetBufferOpaqueCaptureAddressKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetBufferOpaqueCaptureAddressKHR;
+    }
+    if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR;
+    }
+#endif
+#ifdef VK_KHR_deferred_host_operations
+    if (!strcmp(name, "vkCreateDeferredOperationKHR"))
+    {
+        return (void*)dynCheck_entry_vkCreateDeferredOperationKHR;
+    }
+    if (!strcmp(name, "vkDestroyDeferredOperationKHR"))
+    {
+        return (void*)dynCheck_entry_vkDestroyDeferredOperationKHR;
+    }
+    if (!strcmp(name, "vkGetDeferredOperationMaxConcurrencyKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetDeferredOperationMaxConcurrencyKHR;
+    }
+    if (!strcmp(name, "vkGetDeferredOperationResultKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetDeferredOperationResultKHR;
+    }
+    if (!strcmp(name, "vkDeferredOperationJoinKHR"))
+    {
+        return (void*)dynCheck_entry_vkDeferredOperationJoinKHR;
+    }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+    if (!strcmp(name, "vkGetPipelineExecutablePropertiesKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetPipelineExecutablePropertiesKHR;
+    }
+    if (!strcmp(name, "vkGetPipelineExecutableStatisticsKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetPipelineExecutableStatisticsKHR;
+    }
+    if (!strcmp(name, "vkGetPipelineExecutableInternalRepresentationsKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetPipelineExecutableInternalRepresentationsKHR;
+    }
+#endif
+#ifdef VK_KHR_copy_commands2
+    if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyBuffer2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyImage2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyImage2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyBufferToImage2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyBufferToImage2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyImageToBuffer2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBlitImage2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdBlitImage2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdResolveImage2KHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdResolveImage2KHR : nullptr;
+    }
+#endif
 #ifdef VK_ANDROID_native_buffer
     if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
     {
@@ -8048,6 +11330,48 @@
         return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
     }
 #endif
+#ifdef VK_EXT_transform_feedback
+    if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBindTransformFeedbackBuffersEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBeginTransformFeedbackEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndTransformFeedbackEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdEndTransformFeedbackEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginQueryIndexedEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBeginQueryIndexedEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndQueryIndexedEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdEndQueryIndexedEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectByteCountEXT : nullptr;
+    }
+#endif
+#ifdef VK_NVX_image_view_handle
+    if (!strcmp(name, "vkGetImageViewHandleNVX"))
+    {
+        return (void*)dynCheck_entry_vkGetImageViewHandleNVX;
+    }
+    if (!strcmp(name, "vkGetImageViewAddressNVX"))
+    {
+        return (void*)dynCheck_entry_vkGetImageViewAddressNVX;
+    }
+#endif
 #ifdef VK_AMD_draw_indirect_count
     if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
     {
@@ -8066,6 +11390,13 @@
         return (void*)dynCheck_entry_vkGetShaderInfoAMD;
     }
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+    if (!strcmp(name, "vkCreateStreamDescriptorSurfaceGGP"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GGP_stream_descriptor_surface");
+        return hasExt ? (void*)entry_vkCreateStreamDescriptorSurfaceGGP : nullptr;
+    }
+#endif
 #ifdef VK_NV_external_memory_capabilities
     if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
     {
@@ -8098,47 +11429,6 @@
         return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
     }
 #endif
-#ifdef VK_NVX_device_generated_commands
-    if (!strcmp(name, "vkCmdProcessCommandsNVX"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
-    }
-    if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
-    }
-    if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
-    {
-        return (void*)dynCheck_entry_vkCreateIndirectCommandsLayoutNVX;
-    }
-    if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
-    {
-        return (void*)dynCheck_entry_vkDestroyIndirectCommandsLayoutNVX;
-    }
-    if (!strcmp(name, "vkCreateObjectTableNVX"))
-    {
-        return (void*)dynCheck_entry_vkCreateObjectTableNVX;
-    }
-    if (!strcmp(name, "vkDestroyObjectTableNVX"))
-    {
-        return (void*)dynCheck_entry_vkDestroyObjectTableNVX;
-    }
-    if (!strcmp(name, "vkRegisterObjectsNVX"))
-    {
-        return (void*)dynCheck_entry_vkRegisterObjectsNVX;
-    }
-    if (!strcmp(name, "vkUnregisterObjectsNVX"))
-    {
-        return (void*)dynCheck_entry_vkUnregisterObjectsNVX;
-    }
-    if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
-    }
-#endif
 #ifdef VK_NV_clip_space_w_scaling
     if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
     {
@@ -8227,6 +11517,38 @@
         return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
     }
 #endif
+#ifdef VK_MVK_moltenvk
+    if (!strcmp(name, "vkGetMTLDeviceMVK"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr;
+    }
+    if (!strcmp(name, "vkSetMTLTextureMVK"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr;
+    }
+    if (!strcmp(name, "vkGetMTLTextureMVK"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr;
+    }
+    if (!strcmp(name, "vkGetMTLBufferMVK"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr;
+    }
+    if (!strcmp(name, "vkUseIOSurfaceMVK"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr;
+    }
+    if (!strcmp(name, "vkGetIOSurfaceMVK"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr;
+    }
+#endif
 #ifdef VK_EXT_debug_utils
     if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
     {
@@ -8304,6 +11626,12 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
     }
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+    if (!strcmp(name, "vkGetImageDrmFormatModifierPropertiesEXT"))
+    {
+        return (void*)dynCheck_entry_vkGetImageDrmFormatModifierPropertiesEXT;
+    }
+#endif
 #ifdef VK_EXT_validation_cache
     if (!strcmp(name, "vkCreateValidationCacheEXT"))
     {
@@ -8322,6 +11650,81 @@
         return (void*)dynCheck_entry_vkGetValidationCacheDataEXT;
     }
 #endif
+#ifdef VK_NV_shading_rate_image
+    if (!strcmp(name, "vkCmdBindShadingRateImageNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdBindShadingRateImageNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdSetViewportShadingRatePaletteNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdSetCoarseSampleOrderNV : nullptr;
+    }
+#endif
+#ifdef VK_NV_ray_tracing
+    if (!strcmp(name, "vkCreateAccelerationStructureNV"))
+    {
+        return (void*)dynCheck_entry_vkCreateAccelerationStructureNV;
+    }
+    if (!strcmp(name, "vkDestroyAccelerationStructureNV"))
+    {
+        return (void*)dynCheck_entry_vkDestroyAccelerationStructureNV;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureMemoryRequirementsNV"))
+    {
+        return (void*)dynCheck_entry_vkGetAccelerationStructureMemoryRequirementsNV;
+    }
+    if (!strcmp(name, "vkBindAccelerationStructureMemoryNV"))
+    {
+        return (void*)dynCheck_entry_vkBindAccelerationStructureMemoryNV;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructureNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructureNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdTraceRaysNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdTraceRaysNV : nullptr;
+    }
+    if (!strcmp(name, "vkCreateRayTracingPipelinesNV"))
+    {
+        return (void*)dynCheck_entry_vkCreateRayTracingPipelinesNV;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetRayTracingShaderGroupHandlesKHR;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesNV"))
+    {
+        return (void*)dynCheck_entry_vkGetRayTracingShaderGroupHandlesNV;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureHandleNV"))
+    {
+        return (void*)dynCheck_entry_vkGetAccelerationStructureHandleNV;
+    }
+    if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesNV : nullptr;
+    }
+    if (!strcmp(name, "vkCompileDeferredNV"))
+    {
+        return (void*)dynCheck_entry_vkCompileDeferredNV;
+    }
+#endif
 #ifdef VK_EXT_external_memory_host
     if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
     {
@@ -8335,6 +11738,41 @@
         return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
     }
 #endif
+#ifdef VK_EXT_calibrated_timestamps
+    if (!strcmp(name, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_calibrated_timestamps");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetCalibratedTimestampsEXT"))
+    {
+        return (void*)dynCheck_entry_vkGetCalibratedTimestampsEXT;
+    }
+#endif
+#ifdef VK_NV_mesh_shader
+    if (!strcmp(name, "vkCmdDrawMeshTasksNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectCountNV : nullptr;
+    }
+#endif
+#ifdef VK_NV_scissor_exclusive
+    if (!strcmp(name, "vkCmdSetExclusiveScissorNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_scissor_exclusive");
+        return hasExt ? (void*)entry_vkCmdSetExclusiveScissorNV : nullptr;
+    }
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
     if (!strcmp(name, "vkCmdSetCheckpointNV"))
     {
@@ -8347,10 +11785,66 @@
         return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_address_space
-    if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
+#ifdef VK_INTEL_performance_query
+    if (!strcmp(name, "vkInitializePerformanceApiINTEL"))
     {
-        return (void*)dynCheck_entry_vkMapMemoryIntoAddressSpaceGOOGLE;
+        return (void*)dynCheck_entry_vkInitializePerformanceApiINTEL;
+    }
+    if (!strcmp(name, "vkUninitializePerformanceApiINTEL"))
+    {
+        return (void*)dynCheck_entry_vkUninitializePerformanceApiINTEL;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceMarkerINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceStreamMarkerINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceOverrideINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL"))
+    {
+        return (void*)dynCheck_entry_vkAcquirePerformanceConfigurationINTEL;
+    }
+    if (!strcmp(name, "vkReleasePerformanceConfigurationINTEL"))
+    {
+        return (void*)dynCheck_entry_vkReleasePerformanceConfigurationINTEL;
+    }
+    if (!strcmp(name, "vkQueueSetPerformanceConfigurationINTEL"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkQueueSetPerformanceConfigurationINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkGetPerformanceParameterINTEL"))
+    {
+        return (void*)dynCheck_entry_vkGetPerformanceParameterINTEL;
+    }
+#endif
+#ifdef VK_AMD_display_native_hdr
+    if (!strcmp(name, "vkSetLocalDimmingAMD"))
+    {
+        return (void*)dynCheck_entry_vkSetLocalDimmingAMD;
+    }
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+    if (!strcmp(name, "vkCreateImagePipeSurfaceFUCHSIA"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_FUCHSIA_imagepipe_surface");
+        return hasExt ? (void*)entry_vkCreateImagePipeSurfaceFUCHSIA : nullptr;
+    }
+#endif
+#ifdef VK_EXT_metal_surface
+    if (!strcmp(name, "vkCreateMetalSurfaceEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_metal_surface");
+        return hasExt ? (void*)entry_vkCreateMetalSurfaceEXT : nullptr;
     }
 #endif
 #ifdef VK_GOOGLE_color_buffer
@@ -8363,35 +11857,229 @@
         return (void*)dynCheck_entry_vkRegisterBufferColorBufferGOOGLE;
     }
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_buffer_device_address
+    if (!strcmp(name, "vkGetBufferDeviceAddressEXT"))
+    {
+        return (void*)dynCheck_entry_vkGetBufferDeviceAddressEXT;
+    }
+#endif
+#ifdef VK_EXT_tooling_info
+    if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_tooling_info");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceToolPropertiesEXT : nullptr;
+    }
+#endif
+#ifdef VK_NV_cooperative_matrix
+    if (!strcmp(name, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_cooperative_matrix");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV : nullptr;
+    }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+    if (!strcmp(name, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_coverage_reduction_mode");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV : nullptr;
+    }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+    if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModes2EXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_full_screen_exclusive");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModes2EXT : nullptr;
+    }
+    if (!strcmp(name, "vkAcquireFullScreenExclusiveModeEXT"))
+    {
+        return (void*)dynCheck_entry_vkAcquireFullScreenExclusiveModeEXT;
+    }
+    if (!strcmp(name, "vkReleaseFullScreenExclusiveModeEXT"))
+    {
+        return (void*)dynCheck_entry_vkReleaseFullScreenExclusiveModeEXT;
+    }
+    if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModes2EXT"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceGroupSurfacePresentModes2EXT;
+    }
+#endif
+#ifdef VK_EXT_headless_surface
+    if (!strcmp(name, "vkCreateHeadlessSurfaceEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_headless_surface");
+        return hasExt ? (void*)entry_vkCreateHeadlessSurfaceEXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_line_rasterization
+    if (!strcmp(name, "vkCmdSetLineStippleEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_line_rasterization");
+        return hasExt ? (void*)entry_vkCmdSetLineStippleEXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_host_query_reset
+    if (!strcmp(name, "vkResetQueryPoolEXT"))
+    {
+        return (void*)dynCheck_entry_vkResetQueryPoolEXT;
+    }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+    if (!strcmp(name, "vkCmdSetCullModeEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetCullModeEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetFrontFaceEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetFrontFaceEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetPrimitiveTopologyEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetViewportWithCountEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetViewportWithCountEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetScissorWithCountEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetScissorWithCountEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBindVertexBuffers2EXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdBindVertexBuffers2EXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthTestEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthTestEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthWriteEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthCompareOpEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthCompareOpEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthBoundsTestEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetStencilTestEnableEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetStencilTestEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetStencilOpEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetStencilOpEXT : nullptr;
+    }
+#endif
+#ifdef VK_NV_device_generated_commands
+    if (!strcmp(name, "vkGetGeneratedCommandsMemoryRequirementsNV"))
+    {
+        return (void*)dynCheck_entry_vkGetGeneratedCommandsMemoryRequirementsNV;
+    }
+    if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdPreprocessGeneratedCommandsNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdExecuteGeneratedCommandsNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdBindPipelineShaderGroupNV : nullptr;
+    }
+    if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV"))
+    {
+        return (void*)dynCheck_entry_vkCreateIndirectCommandsLayoutNV;
+    }
+    if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNV"))
+    {
+        return (void*)dynCheck_entry_vkDestroyIndirectCommandsLayoutNV;
+    }
+#endif
+#ifdef VK_EXT_private_data
+    if (!strcmp(name, "vkCreatePrivateDataSlotEXT"))
+    {
+        return (void*)dynCheck_entry_vkCreatePrivateDataSlotEXT;
+    }
+    if (!strcmp(name, "vkDestroyPrivateDataSlotEXT"))
+    {
+        return (void*)dynCheck_entry_vkDestroyPrivateDataSlotEXT;
+    }
+    if (!strcmp(name, "vkSetPrivateDataEXT"))
+    {
+        return (void*)dynCheck_entry_vkSetPrivateDataEXT;
+    }
+    if (!strcmp(name, "vkGetPrivateDataEXT"))
+    {
+        return (void*)dynCheck_entry_vkGetPrivateDataEXT;
+    }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+    if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_fragment_shading_rate_enums");
+        return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateEnumNV : nullptr;
+    }
+#endif
+#ifdef VK_EXT_directfb_surface
+    if (!strcmp(name, "vkCreateDirectFBSurfaceEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_directfb_surface");
+        return hasExt ? (void*)entry_vkCreateDirectFBSurfaceEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_directfb_surface");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT : nullptr;
+    }
+#endif
+#ifdef VK_GOOGLE_gfxstream
+    if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
+    {
+        return (void*)dynCheck_entry_vkMapMemoryIntoAddressSpaceGOOGLE;
+    }
     if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
     {
         return (void*)dynCheck_entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE;
     }
-#endif
-#ifdef VK_GOOGLE_async_command_buffers
     if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
     if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
     {
         return (void*)dynCheck_entry_vkCreateImageWithRequirementsGOOGLE;
@@ -8400,86 +12088,145 @@
     {
         return (void*)dynCheck_entry_vkCreateBufferWithRequirementsGOOGLE;
     }
-#endif
-#ifdef VK_GOOGLE_address_space_info
     if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE"))
     {
         return (void*)dynCheck_entry_vkGetMemoryHostAddressInfoGOOGLE;
     }
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
     if (!strcmp(name, "vkFreeMemorySyncGOOGLE"))
     {
         return (void*)dynCheck_entry_vkFreeMemorySyncGOOGLE;
     }
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
     if (!strcmp(name, "vkQueueHostSyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueHostSyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkQueueSubmitAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueSubmitAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkQueueWaitIdleAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueWaitIdleAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkQueueBindSparseAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueBindSparseAsyncGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
     if (!strcmp(name, "vkGetLinearImageLayoutGOOGLE"))
     {
         return (void*)dynCheck_entry_vkGetLinearImageLayoutGOOGLE;
     }
-#endif
-#ifdef VK_MVK_moltenvk
-    if (!strcmp(name, "vkGetMTLDeviceMVK"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr;
-    }
-    if (!strcmp(name, "vkSetMTLTextureMVK"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr;
-    }
-    if (!strcmp(name, "vkGetMTLTextureMVK"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr;
-    }
-    if (!strcmp(name, "vkGetMTLBufferMVK"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr;
-    }
-    if (!strcmp(name, "vkUseIOSurfaceMVK"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr;
-    }
-    if (!strcmp(name, "vkGetIOSurfaceMVK"))
-    {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr;
-    }
-#endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
     if (!strcmp(name, "vkQueueFlushCommandsGOOGLE"))
     {
-        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_queue_submit_with_commands");
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueFlushCommandsGOOGLE : nullptr;
     }
 #endif
+#ifdef VK_KHR_acceleration_structure
+    if (!strcmp(name, "vkCreateAccelerationStructureKHR"))
+    {
+        return (void*)dynCheck_entry_vkCreateAccelerationStructureKHR;
+    }
+    if (!strcmp(name, "vkDestroyAccelerationStructureKHR"))
+    {
+        return (void*)dynCheck_entry_vkDestroyAccelerationStructureKHR;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresIndirectKHR : nullptr;
+    }
+    if (!strcmp(name, "vkBuildAccelerationStructuresKHR"))
+    {
+        return (void*)dynCheck_entry_vkBuildAccelerationStructuresKHR;
+    }
+    if (!strcmp(name, "vkCopyAccelerationStructureKHR"))
+    {
+        return (void*)dynCheck_entry_vkCopyAccelerationStructureKHR;
+    }
+    if (!strcmp(name, "vkCopyAccelerationStructureToMemoryKHR"))
+    {
+        return (void*)dynCheck_entry_vkCopyAccelerationStructureToMemoryKHR;
+    }
+    if (!strcmp(name, "vkCopyMemoryToAccelerationStructureKHR"))
+    {
+        return (void*)dynCheck_entry_vkCopyMemoryToAccelerationStructureKHR;
+    }
+    if (!strcmp(name, "vkWriteAccelerationStructuresPropertiesKHR"))
+    {
+        return (void*)dynCheck_entry_vkWriteAccelerationStructuresPropertiesKHR;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureToMemoryKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyMemoryToAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetAccelerationStructureDeviceAddressKHR;
+    }
+    if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetDeviceAccelerationStructureCompatibilityKHR;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureBuildSizesKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetAccelerationStructureBuildSizesKHR;
+    }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+    if (!strcmp(name, "vkCmdTraceRaysKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdTraceRaysKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCreateRayTracingPipelinesKHR"))
+    {
+        return (void*)dynCheck_entry_vkCreateRayTracingPipelinesKHR;
+    }
+    if (!strcmp(name, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
+    }
+    if (!strcmp(name, "vkCmdTraceRaysIndirectKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdTraceRaysIndirectKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR"))
+    {
+        return (void*)dynCheck_entry_vkGetRayTracingShaderGroupStackSizeKHR;
+    }
+    if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR"))
+    {
+        bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdSetRayTracingPipelineStackSizeKHR : nullptr;
+    }
+#endif
     return nullptr;
 }
 void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
@@ -9149,6 +12896,73 @@
         return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
     }
 #endif
+#ifdef VK_VERSION_1_2
+    if (!strcmp(name, "vkCmdDrawIndirectCount"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectCount : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawIndexedIndirectCount"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCount : nullptr;
+    }
+    if (!strcmp(name, "vkCreateRenderPass2"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCreateRenderPass2 : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginRenderPass2"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdBeginRenderPass2 : nullptr;
+    }
+    if (!strcmp(name, "vkCmdNextSubpass2"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdNextSubpass2 : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndRenderPass2"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkCmdEndRenderPass2 : nullptr;
+    }
+    if (!strcmp(name, "vkResetQueryPool"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkResetQueryPool : nullptr;
+    }
+    if (!strcmp(name, "vkGetSemaphoreCounterValue"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkGetSemaphoreCounterValue : nullptr;
+    }
+    if (!strcmp(name, "vkWaitSemaphores"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkWaitSemaphores : nullptr;
+    }
+    if (!strcmp(name, "vkSignalSemaphore"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkSignalSemaphore : nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferDeviceAddress"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkGetBufferDeviceAddress : nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferOpaqueCaptureAddress"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkGetBufferOpaqueCaptureAddress : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddress"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2");
+        return hasExt ? (void*)entry_vkGetDeviceMemoryOpaqueCaptureAddress : nullptr;
+    }
+#endif
 #ifdef VK_KHR_surface
     if (!strcmp(name, "vkDestroySurfaceKHR"))
     {
@@ -9303,18 +13117,6 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
     }
 #endif
-#ifdef VK_KHR_mir_surface
-    if (!strcmp(name, "vkCreateMirSurfaceKHR"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
-        return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
-    }
-    if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
-        return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
-    }
-#endif
 #ifdef VK_KHR_android_surface
     if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
     {
@@ -9553,6 +13355,28 @@
         return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_performance_query
+    if (!strcmp(name, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query");
+        return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkAcquireProfilingLockKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query");
+        return hasExt ? (void*)entry_vkAcquireProfilingLockKHR : nullptr;
+    }
+    if (!strcmp(name, "vkReleaseProfilingLockKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query");
+        return hasExt ? (void*)entry_vkReleaseProfilingLockKHR : nullptr;
+    }
+#endif
 #ifdef VK_KHR_get_surface_capabilities2
     if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
     {
@@ -9647,6 +13471,128 @@
         return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
     }
 #endif
+#ifdef VK_KHR_timeline_semaphore
+    if (!strcmp(name, "vkGetSemaphoreCounterValueKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore");
+        return hasExt ? (void*)entry_vkGetSemaphoreCounterValueKHR : nullptr;
+    }
+    if (!strcmp(name, "vkWaitSemaphoresKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore");
+        return hasExt ? (void*)entry_vkWaitSemaphoresKHR : nullptr;
+    }
+    if (!strcmp(name, "vkSignalSemaphoreKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore");
+        return hasExt ? (void*)entry_vkSignalSemaphoreKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+    if (!strcmp(name, "vkGetPhysicalDeviceFragmentShadingRatesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_fragment_shading_rate");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceFragmentShadingRatesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_fragment_shading_rate");
+        return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_buffer_device_address
+    if (!strcmp(name, "vkGetBufferDeviceAddressKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address");
+        return hasExt ? (void*)entry_vkGetBufferDeviceAddressKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetBufferOpaqueCaptureAddressKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address");
+        return hasExt ? (void*)entry_vkGetBufferOpaqueCaptureAddressKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddressKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address");
+        return hasExt ? (void*)entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_deferred_host_operations
+    if (!strcmp(name, "vkCreateDeferredOperationKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations");
+        return hasExt ? (void*)entry_vkCreateDeferredOperationKHR : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyDeferredOperationKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations");
+        return hasExt ? (void*)entry_vkDestroyDeferredOperationKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeferredOperationMaxConcurrencyKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations");
+        return hasExt ? (void*)entry_vkGetDeferredOperationMaxConcurrencyKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeferredOperationResultKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations");
+        return hasExt ? (void*)entry_vkGetDeferredOperationResultKHR : nullptr;
+    }
+    if (!strcmp(name, "vkDeferredOperationJoinKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations");
+        return hasExt ? (void*)entry_vkDeferredOperationJoinKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+    if (!strcmp(name, "vkGetPipelineExecutablePropertiesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties");
+        return hasExt ? (void*)entry_vkGetPipelineExecutablePropertiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetPipelineExecutableStatisticsKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties");
+        return hasExt ? (void*)entry_vkGetPipelineExecutableStatisticsKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetPipelineExecutableInternalRepresentationsKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties");
+        return hasExt ? (void*)entry_vkGetPipelineExecutableInternalRepresentationsKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_copy_commands2
+    if (!strcmp(name, "vkCmdCopyBuffer2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyBuffer2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyImage2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyImage2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyBufferToImage2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyBufferToImage2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdCopyImageToBuffer2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBlitImage2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdBlitImage2KHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdResolveImage2KHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2");
+        return hasExt ? (void*)entry_vkCmdResolveImage2KHR : nullptr;
+    }
+#endif
 #ifdef VK_ANDROID_native_buffer
     if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
     {
@@ -9708,6 +13654,50 @@
         return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
     }
 #endif
+#ifdef VK_EXT_transform_feedback
+    if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBindTransformFeedbackBuffersEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBeginTransformFeedbackEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndTransformFeedbackEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdEndTransformFeedbackEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBeginQueryIndexedEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdBeginQueryIndexedEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdEndQueryIndexedEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdEndQueryIndexedEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback");
+        return hasExt ? (void*)entry_vkCmdDrawIndirectByteCountEXT : nullptr;
+    }
+#endif
+#ifdef VK_NVX_image_view_handle
+    if (!strcmp(name, "vkGetImageViewHandleNVX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_image_view_handle");
+        return hasExt ? (void*)entry_vkGetImageViewHandleNVX : nullptr;
+    }
+    if (!strcmp(name, "vkGetImageViewAddressNVX"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_image_view_handle");
+        return hasExt ? (void*)entry_vkGetImageViewAddressNVX : nullptr;
+    }
+#endif
 #ifdef VK_AMD_draw_indirect_count
     if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
     {
@@ -9727,6 +13717,13 @@
         return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
     }
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+    if (!strcmp(name, "vkCreateStreamDescriptorSurfaceGGP"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GGP_stream_descriptor_surface");
+        return hasExt ? (void*)entry_vkCreateStreamDescriptorSurfaceGGP : nullptr;
+    }
+#endif
 #ifdef VK_NV_external_memory_capabilities
     if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
     {
@@ -9760,53 +13757,6 @@
         return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
     }
 #endif
-#ifdef VK_NVX_device_generated_commands
-    if (!strcmp(name, "vkCmdProcessCommandsNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
-    }
-    if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
-    }
-    if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
-    }
-    if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
-    }
-    if (!strcmp(name, "vkCreateObjectTableNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
-    }
-    if (!strcmp(name, "vkDestroyObjectTableNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
-    }
-    if (!strcmp(name, "vkRegisterObjectsNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
-    }
-    if (!strcmp(name, "vkUnregisterObjectsNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
-    }
-    if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
-        return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
-    }
-#endif
 #ifdef VK_NV_clip_space_w_scaling
     if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
     {
@@ -9902,6 +13852,38 @@
         return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
     }
 #endif
+#ifdef VK_MVK_moltenvk
+    if (!strcmp(name, "vkGetMTLDeviceMVK"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr;
+    }
+    if (!strcmp(name, "vkSetMTLTextureMVK"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr;
+    }
+    if (!strcmp(name, "vkGetMTLTextureMVK"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr;
+    }
+    if (!strcmp(name, "vkGetMTLBufferMVK"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr;
+    }
+    if (!strcmp(name, "vkUseIOSurfaceMVK"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr;
+    }
+    if (!strcmp(name, "vkGetIOSurfaceMVK"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
+        return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr;
+    }
+#endif
 #ifdef VK_EXT_debug_utils
     if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
     {
@@ -9983,6 +13965,13 @@
         return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
     }
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+    if (!strcmp(name, "vkGetImageDrmFormatModifierPropertiesEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_image_drm_format_modifier");
+        return hasExt ? (void*)entry_vkGetImageDrmFormatModifierPropertiesEXT : nullptr;
+    }
+#endif
 #ifdef VK_EXT_validation_cache
     if (!strcmp(name, "vkCreateValidationCacheEXT"))
     {
@@ -10005,6 +13994,90 @@
         return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
     }
 #endif
+#ifdef VK_NV_shading_rate_image
+    if (!strcmp(name, "vkCmdBindShadingRateImageNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdBindShadingRateImageNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdSetViewportShadingRatePaletteNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_shading_rate_image");
+        return hasExt ? (void*)entry_vkCmdSetCoarseSampleOrderNV : nullptr;
+    }
+#endif
+#ifdef VK_NV_ray_tracing
+    if (!strcmp(name, "vkCreateAccelerationStructureNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCreateAccelerationStructureNV : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyAccelerationStructureNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkDestroyAccelerationStructureNV : nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureMemoryRequirementsNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkGetAccelerationStructureMemoryRequirementsNV : nullptr;
+    }
+    if (!strcmp(name, "vkBindAccelerationStructureMemoryNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkBindAccelerationStructureMemoryNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructureNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructureNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdTraceRaysNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdTraceRaysNV : nullptr;
+    }
+    if (!strcmp(name, "vkCreateRayTracingPipelinesNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCreateRayTracingPipelinesNV : nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkGetRayTracingShaderGroupHandlesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkGetRayTracingShaderGroupHandlesNV : nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureHandleNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkGetAccelerationStructureHandleNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesNV : nullptr;
+    }
+    if (!strcmp(name, "vkCompileDeferredNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing");
+        return hasExt ? (void*)entry_vkCompileDeferredNV : nullptr;
+    }
+#endif
 #ifdef VK_EXT_external_memory_host
     if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
     {
@@ -10019,6 +14092,42 @@
         return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
     }
 #endif
+#ifdef VK_EXT_calibrated_timestamps
+    if (!strcmp(name, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_calibrated_timestamps");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetCalibratedTimestampsEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_calibrated_timestamps");
+        return hasExt ? (void*)entry_vkGetCalibratedTimestampsEXT : nullptr;
+    }
+#endif
+#ifdef VK_NV_mesh_shader
+    if (!strcmp(name, "vkCmdDrawMeshTasksNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_mesh_shader");
+        return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectCountNV : nullptr;
+    }
+#endif
+#ifdef VK_NV_scissor_exclusive
+    if (!strcmp(name, "vkCmdSetExclusiveScissorNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_scissor_exclusive");
+        return hasExt ? (void*)entry_vkCmdSetExclusiveScissorNV : nullptr;
+    }
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
     if (!strcmp(name, "vkCmdSetCheckpointNV"))
     {
@@ -10031,11 +14140,72 @@
         return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_address_space
-    if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
+#ifdef VK_INTEL_performance_query
+    if (!strcmp(name, "vkInitializePerformanceApiINTEL"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
-        return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkInitializePerformanceApiINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkUninitializePerformanceApiINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkUninitializePerformanceApiINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceMarkerINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceStreamMarkerINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkCmdSetPerformanceOverrideINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkAcquirePerformanceConfigurationINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkReleasePerformanceConfigurationINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkReleasePerformanceConfigurationINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkQueueSetPerformanceConfigurationINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkQueueSetPerformanceConfigurationINTEL : nullptr;
+    }
+    if (!strcmp(name, "vkGetPerformanceParameterINTEL"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query");
+        return hasExt ? (void*)entry_vkGetPerformanceParameterINTEL : nullptr;
+    }
+#endif
+#ifdef VK_AMD_display_native_hdr
+    if (!strcmp(name, "vkSetLocalDimmingAMD"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_display_native_hdr");
+        return hasExt ? (void*)entry_vkSetLocalDimmingAMD : nullptr;
+    }
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+    if (!strcmp(name, "vkCreateImagePipeSurfaceFUCHSIA"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_imagepipe_surface");
+        return hasExt ? (void*)entry_vkCreateImagePipeSurfaceFUCHSIA : nullptr;
+    }
+#endif
+#ifdef VK_EXT_metal_surface
+    if (!strcmp(name, "vkCreateMetalSurfaceEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_metal_surface");
+        return hasExt ? (void*)entry_vkCreateMetalSurfaceEXT : nullptr;
     }
 #endif
 #ifdef VK_GOOGLE_color_buffer
@@ -10050,129 +14220,408 @@
         return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
-    if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
+#ifdef VK_EXT_buffer_device_address
+    if (!strcmp(name, "vkGetBufferDeviceAddressEXT"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
-        return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_buffer_device_address");
+        return hasExt ? (void*)entry_vkGetBufferDeviceAddressEXT : nullptr;
     }
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_EXT_tooling_info
+    if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_tooling_info");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceToolPropertiesEXT : nullptr;
+    }
+#endif
+#ifdef VK_NV_cooperative_matrix
+    if (!strcmp(name, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_cooperative_matrix");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV : nullptr;
+    }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+    if (!strcmp(name, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_coverage_reduction_mode");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV : nullptr;
+    }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+    if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModes2EXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModes2EXT : nullptr;
+    }
+    if (!strcmp(name, "vkAcquireFullScreenExclusiveModeEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive");
+        return hasExt ? (void*)entry_vkAcquireFullScreenExclusiveModeEXT : nullptr;
+    }
+    if (!strcmp(name, "vkReleaseFullScreenExclusiveModeEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive");
+        return hasExt ? (void*)entry_vkReleaseFullScreenExclusiveModeEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModes2EXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive");
+        return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModes2EXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_headless_surface
+    if (!strcmp(name, "vkCreateHeadlessSurfaceEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_headless_surface");
+        return hasExt ? (void*)entry_vkCreateHeadlessSurfaceEXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_line_rasterization
+    if (!strcmp(name, "vkCmdSetLineStippleEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_line_rasterization");
+        return hasExt ? (void*)entry_vkCmdSetLineStippleEXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_host_query_reset
+    if (!strcmp(name, "vkResetQueryPoolEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_host_query_reset");
+        return hasExt ? (void*)entry_vkResetQueryPoolEXT : nullptr;
+    }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+    if (!strcmp(name, "vkCmdSetCullModeEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetCullModeEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetFrontFaceEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetFrontFaceEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetPrimitiveTopologyEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetViewportWithCountEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetViewportWithCountEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetScissorWithCountEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetScissorWithCountEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBindVertexBuffers2EXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdBindVertexBuffers2EXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthTestEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthTestEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthWriteEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthCompareOpEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthCompareOpEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetDepthBoundsTestEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetStencilTestEnableEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetStencilTestEnableEXT : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetStencilOpEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state");
+        return hasExt ? (void*)entry_vkCmdSetStencilOpEXT : nullptr;
+    }
+#endif
+#ifdef VK_NV_device_generated_commands
+    if (!strcmp(name, "vkGetGeneratedCommandsMemoryRequirementsNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkGetGeneratedCommandsMemoryRequirementsNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdPreprocessGeneratedCommandsNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdExecuteGeneratedCommandsNV : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCmdBindPipelineShaderGroupNV : nullptr;
+    }
+    if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNV : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands");
+        return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNV : nullptr;
+    }
+#endif
+#ifdef VK_EXT_private_data
+    if (!strcmp(name, "vkCreatePrivateDataSlotEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data");
+        return hasExt ? (void*)entry_vkCreatePrivateDataSlotEXT : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyPrivateDataSlotEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data");
+        return hasExt ? (void*)entry_vkDestroyPrivateDataSlotEXT : nullptr;
+    }
+    if (!strcmp(name, "vkSetPrivateDataEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data");
+        return hasExt ? (void*)entry_vkSetPrivateDataEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetPrivateDataEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data");
+        return hasExt ? (void*)entry_vkGetPrivateDataEXT : nullptr;
+    }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+    if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_NV_fragment_shading_rate_enums");
+        return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateEnumNV : nullptr;
+    }
+#endif
+#ifdef VK_EXT_directfb_surface
+    if (!strcmp(name, "vkCreateDirectFBSurfaceEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_directfb_surface");
+        return hasExt ? (void*)entry_vkCreateDirectFBSurfaceEXT : nullptr;
+    }
+    if (!strcmp(name, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_directfb_surface");
+        return hasExt ? (void*)entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT : nullptr;
+    }
+#endif
+#ifdef VK_GOOGLE_gfxstream
+    if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
+        return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
+    }
+    if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
+        return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
+    }
     if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
     if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkCreateImageWithRequirementsGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkCreateBufferWithRequirementsGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_address_space_info
     if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space_info");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkGetMemoryHostAddressInfoGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
     if (!strcmp(name, "vkFreeMemorySyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_free_memory_sync");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkFreeMemorySyncGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
     if (!strcmp(name, "vkQueueHostSyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueHostSyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkQueueSubmitAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueSubmitAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkQueueWaitIdleAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueWaitIdleAsyncGOOGLE : nullptr;
     }
     if (!strcmp(name, "vkQueueBindSparseAsyncGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_queue_submit");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueBindSparseAsyncGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
     if (!strcmp(name, "vkGetLinearImageLayoutGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_linear_image_layout");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkGetLinearImageLayoutGOOGLE : nullptr;
     }
-#endif
-#ifdef VK_MVK_moltenvk
-    if (!strcmp(name, "vkGetMTLDeviceMVK"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr;
-    }
-    if (!strcmp(name, "vkSetMTLTextureMVK"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr;
-    }
-    if (!strcmp(name, "vkGetMTLTextureMVK"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr;
-    }
-    if (!strcmp(name, "vkGetMTLBufferMVK"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr;
-    }
-    if (!strcmp(name, "vkUseIOSurfaceMVK"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr;
-    }
-    if (!strcmp(name, "vkGetIOSurfaceMVK"))
-    {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk");
-        return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr;
-    }
-#endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
     if (!strcmp(name, "vkQueueFlushCommandsGOOGLE"))
     {
-        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_queue_submit_with_commands");
+        bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
         return hasExt ? (void*)entry_vkQueueFlushCommandsGOOGLE : nullptr;
     }
 #endif
+#ifdef VK_KHR_acceleration_structure
+    if (!strcmp(name, "vkCreateAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCreateAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkDestroyAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkDestroyAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresIndirectKHR : nullptr;
+    }
+    if (!strcmp(name, "vkBuildAccelerationStructuresKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkBuildAccelerationStructuresKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCopyAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCopyAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCopyAccelerationStructureToMemoryKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCopyAccelerationStructureToMemoryKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCopyMemoryToAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCopyMemoryToAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkWriteAccelerationStructuresPropertiesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkWriteAccelerationStructuresPropertiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureToMemoryKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdCopyMemoryToAccelerationStructureKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkGetAccelerationStructureDeviceAddressKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkGetDeviceAccelerationStructureCompatibilityKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetAccelerationStructureBuildSizesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure");
+        return hasExt ? (void*)entry_vkGetAccelerationStructureBuildSizesKHR : nullptr;
+    }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+    if (!strcmp(name, "vkCmdTraceRaysKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdTraceRaysKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCreateRayTracingPipelinesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCreateRayTracingPipelinesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdTraceRaysIndirectKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdTraceRaysIndirectKHR : nullptr;
+    }
+    if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkGetRayTracingShaderGroupStackSizeKHR : nullptr;
+    }
+    if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR"))
+    {
+        bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline");
+        return hasExt ? (void*)entry_vkCmdSetRayTracingPipelineStackSizeKHR : nullptr;
+    }
+#endif
     return nullptr;
 }
 
diff --git a/system/vulkan_enc/func_table.h b/system/vulkan_enc/func_table.h
index 5022df1..39f2e02 100644
--- a/system/vulkan_enc/func_table.h
+++ b/system/vulkan_enc/func_table.h
@@ -34,6 +34,8 @@
 #endif
 #ifdef VK_VERSION_1_1
 #endif
+#ifdef VK_VERSION_1_2
+#endif
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
@@ -48,8 +50,6 @@
 #endif
 #ifdef VK_KHR_wayland_surface
 #endif
-#ifdef VK_KHR_mir_surface
-#endif
 #ifdef VK_KHR_android_surface
 #endif
 #ifdef VK_KHR_win32_surface
@@ -88,12 +88,16 @@
 #endif
 #ifdef VK_KHR_push_descriptor
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -106,6 +110,8 @@
 #endif
 #ifdef VK_KHR_external_fence_fd
 #endif
+#ifdef VK_KHR_performance_query
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -128,13 +134,55 @@
 #endif
 #ifdef VK_KHR_bind_memory2
 #endif
+#ifdef VK_KHR_portability_subset
+#endif
 #ifdef VK_KHR_maintenance3
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
 #endif
-#ifdef VK_KHR_shader_float16_int8
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+#endif
+#ifdef VK_KHR_pipeline_library
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
 #endif
 #ifdef VK_ANDROID_native_buffer
 #endif
@@ -158,6 +206,10 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 #endif
+#ifdef VK_EXT_transform_feedback
+#endif
+#ifdef VK_NVX_image_view_handle
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -172,6 +224,10 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+#endif
+#ifdef VK_NV_corner_sampled_image
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -190,9 +246,11 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
-#ifdef VK_EXT_conditional_rendering
+#ifdef VK_EXT_texture_compression_astc_hdr
 #endif
-#ifdef VK_NVX_device_generated_commands
+#ifdef VK_EXT_astc_decode_mode
+#endif
+#ifdef VK_EXT_conditional_rendering
 #endif
 #ifdef VK_NV_clip_space_w_scaling
 #endif
@@ -220,6 +278,8 @@
 #endif
 #ifdef VK_EXT_conservative_rasterization
 #endif
+#ifdef VK_EXT_depth_clip_enable
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -228,6 +288,8 @@
 #endif
 #ifdef VK_MVK_macos_surface
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
@@ -244,6 +306,8 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -256,49 +320,169 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+#endif
 #ifdef VK_EXT_validation_cache
 #endif
 #ifdef VK_EXT_descriptor_indexing
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+#endif
+#ifdef VK_NV_ray_tracing
+#endif
+#ifdef VK_NV_representative_fragment_test
+#endif
+#ifdef VK_EXT_filter_cubic
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 #endif
 #ifdef VK_EXT_external_memory_host
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+#endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 #endif
+#ifdef VK_GGP_frame_token
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+#endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+#endif
+#ifdef VK_NV_mesh_shader
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+#endif
+#ifdef VK_NV_shader_image_footprint
+#endif
+#ifdef VK_NV_scissor_exclusive
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+#endif
+#ifdef VK_INTEL_performance_query
+#endif
+#ifdef VK_EXT_pci_bus_info
+#endif
+#ifdef VK_AMD_display_native_hdr
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+#endif
+#ifdef VK_EXT_metal_surface
 #endif
 #ifdef VK_GOOGLE_color_buffer
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+#endif
+#ifdef VK_EXT_buffer_device_address
+#endif
+#ifdef VK_EXT_tooling_info
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+#endif
+#ifdef VK_NV_cooperative_matrix
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+#endif
+#ifdef VK_EXT_headless_surface
+#endif
+#ifdef VK_EXT_line_rasterization
+#endif
+#ifdef VK_EXT_shader_atomic_float
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+#endif
+#ifdef VK_NV_device_generated_commands
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+#endif
+#ifdef VK_QCOM_render_pass_transform
+#endif
+#ifdef VK_EXT_device_memory_report
+#endif
+#ifdef VK_EXT_robustness2
+#endif
+#ifdef VK_EXT_custom_border_color
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+#endif
+#ifdef VK_NV_device_diagnostics_config
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+#endif
+#ifdef VK_EXT_fragment_density_map2
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+#endif
+#ifdef VK_EXT_image_robustness
+#endif
+#ifdef VK_EXT_4444_formats
+#endif
+#ifdef VK_EXT_directfb_surface
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+#endif
+#ifdef VK_KHR_ray_query
 #endif
 void* goldfish_vulkan_get_proc_address(const char* name);
 void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name);
diff --git a/system/vulkan_enc/goldfish_vk_counting_guest.cpp b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
index 21612e2..ff8d90b 100644
--- a/system/vulkan_enc/goldfish_vk_counting_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_counting_guest.cpp
@@ -37,6 +37,225 @@
     size_t* count);
 
 #ifdef VK_VERSION_1_0
+void count_VkExtent2D(
+    uint32_t featureBits,
+    const VkExtent2D* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkExtent3D(
+    uint32_t featureBits,
+    const VkExtent3D* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkOffset2D(
+    uint32_t featureBits,
+    const VkOffset2D* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(int32_t);
+    *count += sizeof(int32_t);
+}
+
+void count_VkOffset3D(
+    uint32_t featureBits,
+    const VkOffset3D* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(int32_t);
+    *count += sizeof(int32_t);
+    *count += sizeof(int32_t);
+}
+
+void count_VkRect2D(
+    uint32_t featureBits,
+    const VkRect2D* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkOffset2D(featureBits, (VkOffset2D*)(&toCount->offset), count);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->extent), count);
+}
+
+void count_VkBaseInStructure(
+    uint32_t featureBits,
+    const VkBaseInStructure* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+}
+
+void count_VkBaseOutStructure(
+    uint32_t featureBits,
+    const VkBaseOutStructure* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+}
+
+void count_VkBufferMemoryBarrier(
+    uint32_t featureBits,
+    const VkBufferMemoryBarrier* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAccessFlags);
+    *count += sizeof(VkAccessFlags);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkDispatchIndirectCommand(
+    uint32_t featureBits,
+    const VkDispatchIndirectCommand* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkDrawIndexedIndirectCommand(
+    uint32_t featureBits,
+    const VkDrawIndexedIndirectCommand* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(int32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkDrawIndirectCommand(
+    uint32_t featureBits,
+    const VkDrawIndirectCommand* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkImageSubresourceRange(
+    uint32_t featureBits,
+    const VkImageSubresourceRange* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkImageAspectFlags);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkImageMemoryBarrier(
+    uint32_t featureBits,
+    const VkImageMemoryBarrier* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAccessFlags);
+    *count += sizeof(VkAccessFlags);
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    count_VkImageSubresourceRange(featureBits, (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
+}
+
+void count_VkMemoryBarrier(
+    uint32_t featureBits,
+    const VkMemoryBarrier* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAccessFlags);
+    *count += sizeof(VkAccessFlags);
+}
+
+void count_VkAllocationCallbacks(
+    uint32_t featureBits,
+    const VkAllocationCallbacks* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pUserData)
+    {
+        *count += sizeof(uint8_t);
+    }
+    *count += 8;
+    *count += 8;
+    *count += 8;
+    *count += 8;
+    *count += 8;
+}
+
 void count_VkApplicationInfo(
     uint32_t featureBits,
     const VkApplicationInfo* toCount,
@@ -78,6 +297,34 @@
     *count += sizeof(uint32_t);
 }
 
+void count_VkFormatProperties(
+    uint32_t featureBits,
+    const VkFormatProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkFormatFeatureFlags);
+    *count += sizeof(VkFormatFeatureFlags);
+    *count += sizeof(VkFormatFeatureFlags);
+}
+
+void count_VkImageFormatProperties(
+    uint32_t featureBits,
+    const VkImageFormatProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->maxExtent), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkSampleCountFlags);
+    *count += sizeof(VkDeviceSize);
+}
+
 void count_VkInstanceCreateInfo(
     uint32_t featureBits,
     const VkInstanceCreateInfo* toCount,
@@ -97,39 +344,48 @@
     }
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < toCount->enabledLayerCount; ++i)
+    if ((toCount) != nullptr)
     {
-        size_t l = toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0;
-        *count += sizeof(uint32_t) + (toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0);
+        for (uint32_t i = 0; i < toCount->enabledLayerCount; ++i)
+        {
+            size_t l = toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0;
+            *count += sizeof(uint32_t) + (toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0);
+        }
     }
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < toCount->enabledExtensionCount; ++i)
+    if ((toCount) != nullptr)
     {
-        size_t l = toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0;
-        *count += sizeof(uint32_t) + (toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0);
+        for (uint32_t i = 0; i < toCount->enabledExtensionCount; ++i)
+        {
+            size_t l = toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0;
+            *count += sizeof(uint32_t) + (toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0);
+        }
     }
 }
 
-void count_VkAllocationCallbacks(
+void count_VkMemoryHeap(
     uint32_t featureBits,
-    const VkAllocationCallbacks* toCount,
+    const VkMemoryHeap* toCount,
     size_t* count)
 {
     (void)featureBits;
     (void)toCount;
     (void)count;
-    // WARNING PTR CHECK
-    *count += 8;
-    if (toCount->pUserData)
-    {
-        *count += sizeof(uint8_t);
-    }
-    *count += 8;
-    *count += 8;
-    *count += 8;
-    *count += 8;
-    *count += 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkMemoryHeapFlags);
+}
+
+void count_VkMemoryType(
+    uint32_t featureBits,
+    const VkMemoryType* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkMemoryPropertyFlags);
+    *count += sizeof(uint32_t);
 }
 
 void count_VkPhysicalDeviceFeatures(
@@ -197,47 +453,6 @@
     *count += sizeof(VkBool32);
 }
 
-void count_VkFormatProperties(
-    uint32_t featureBits,
-    const VkFormatProperties* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkFormatFeatureFlags);
-    *count += sizeof(VkFormatFeatureFlags);
-    *count += sizeof(VkFormatFeatureFlags);
-}
-
-void count_VkExtent3D(
-    uint32_t featureBits,
-    const VkExtent3D* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkImageFormatProperties(
-    uint32_t featureBits,
-    const VkImageFormatProperties* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->maxExtent), count);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(VkSampleCountFlags);
-    *count += sizeof(VkDeviceSize);
-}
-
 void count_VkPhysicalDeviceLimits(
     uint32_t featureBits,
     const VkPhysicalDeviceLimits* toCount,
@@ -354,6 +569,26 @@
     *count += sizeof(VkDeviceSize);
 }
 
+void count_VkPhysicalDeviceMemoryProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMemoryProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        count_VkMemoryType(featureBits, (VkMemoryType*)(toCount->memoryTypes + i), count);
+    }
+    *count += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        count_VkMemoryHeap(featureBits, (VkMemoryHeap*)(toCount->memoryHeaps + i), count);
+    }
+}
+
 void count_VkPhysicalDeviceSparseProperties(
     uint32_t featureBits,
     const VkPhysicalDeviceSparseProperties* toCount,
@@ -402,50 +637,6 @@
     count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->minImageTransferGranularity), count);
 }
 
-void count_VkMemoryType(
-    uint32_t featureBits,
-    const VkMemoryType* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkMemoryPropertyFlags);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkMemoryHeap(
-    uint32_t featureBits,
-    const VkMemoryHeap* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkDeviceSize);
-    *count += sizeof(VkMemoryHeapFlags);
-}
-
-void count_VkPhysicalDeviceMemoryProperties(
-    uint32_t featureBits,
-    const VkPhysicalDeviceMemoryProperties* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        count_VkMemoryType(featureBits, (VkMemoryType*)(toCount->memoryTypes + i), count);
-    }
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        count_VkMemoryHeap(featureBits, (VkMemoryHeap*)(toCount->memoryHeaps + i), count);
-    }
-}
-
 void count_VkDeviceQueueCreateInfo(
     uint32_t featureBits,
     const VkDeviceQueueCreateInfo* toCount,
@@ -459,7 +650,10 @@
     *count += sizeof(VkDeviceQueueCreateFlags);
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
-    *count += toCount->queueCount * sizeof(const float);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->queueCount * sizeof(const float);
+    }
 }
 
 void count_VkDeviceCreateInfo(
@@ -474,23 +668,32 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkDeviceCreateFlags);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->queueCreateInfoCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkDeviceQueueCreateInfo(featureBits, (const VkDeviceQueueCreateInfo*)(toCount->pQueueCreateInfos + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->queueCreateInfoCount; ++i)
+        {
+            count_VkDeviceQueueCreateInfo(featureBits, (const VkDeviceQueueCreateInfo*)(toCount->pQueueCreateInfos + i), count);
+        }
     }
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < toCount->enabledLayerCount; ++i)
+    if ((toCount) != nullptr)
     {
-        size_t l = toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0;
-        *count += sizeof(uint32_t) + (toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0);
+        for (uint32_t i = 0; i < toCount->enabledLayerCount; ++i)
+        {
+            size_t l = toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0;
+            *count += sizeof(uint32_t) + (toCount->ppEnabledLayerNames[i] ? strlen(toCount->ppEnabledLayerNames[i]) : 0);
+        }
     }
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < toCount->enabledExtensionCount; ++i)
+    if ((toCount) != nullptr)
     {
-        size_t l = toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0;
-        *count += sizeof(uint32_t) + (toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0);
+        for (uint32_t i = 0; i < toCount->enabledExtensionCount; ++i)
+        {
+            size_t l = toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0;
+            *count += sizeof(uint32_t) + (toCount->ppEnabledExtensionNames[i] ? strlen(toCount->ppEnabledExtensionNames[i]) : 0);
+        }
     }
     // WARNING PTR CHECK
     *count += 8;
@@ -541,7 +744,10 @@
     {
         *count += toCount->waitSemaphoreCount * 8;
     }
-    *count += toCount->waitSemaphoreCount * sizeof(const VkPipelineStageFlags);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->waitSemaphoreCount * sizeof(const VkPipelineStageFlags);
+    }
     *count += sizeof(uint32_t);
     if (toCount->commandBufferCount)
     {
@@ -554,6 +760,22 @@
     }
 }
 
+void count_VkMappedMemoryRange(
+    uint32_t featureBits,
+    const VkMappedMemoryRange* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
 void count_VkMemoryAllocateInfo(
     uint32_t featureBits,
     const VkMemoryAllocateInfo* toCount,
@@ -568,22 +790,6 @@
     *count += sizeof(uint32_t);
 }
 
-void count_VkMappedMemoryRange(
-    uint32_t featureBits,
-    const VkMappedMemoryRange* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_3;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-    *count += sizeof(VkDeviceSize);
-}
-
 void count_VkMemoryRequirements(
     uint32_t featureBits,
     const VkMemoryRequirements* toCount,
@@ -597,6 +803,158 @@
     *count += sizeof(uint32_t);
 }
 
+void count_VkSparseMemoryBind(
+    uint32_t featureBits,
+    const VkSparseMemoryBind* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkSparseMemoryBindFlags);
+}
+
+void count_VkSparseBufferMemoryBindInfo(
+    uint32_t featureBits,
+    const VkSparseBufferMemoryBindInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i)
+        {
+            count_VkSparseMemoryBind(featureBits, (const VkSparseMemoryBind*)(toCount->pBinds + i), count);
+        }
+    }
+}
+
+void count_VkSparseImageOpaqueMemoryBindInfo(
+    uint32_t featureBits,
+    const VkSparseImageOpaqueMemoryBindInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i)
+        {
+            count_VkSparseMemoryBind(featureBits, (const VkSparseMemoryBind*)(toCount->pBinds + i), count);
+        }
+    }
+}
+
+void count_VkImageSubresource(
+    uint32_t featureBits,
+    const VkImageSubresource* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkImageAspectFlags);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkSparseImageMemoryBind(
+    uint32_t featureBits,
+    const VkSparseImageMemoryBind* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkImageSubresource(featureBits, (VkImageSubresource*)(&toCount->subresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->offset), count);
+    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->extent), count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkSparseMemoryBindFlags);
+}
+
+void count_VkSparseImageMemoryBindInfo(
+    uint32_t featureBits,
+    const VkSparseImageMemoryBindInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i)
+        {
+            count_VkSparseImageMemoryBind(featureBits, (const VkSparseImageMemoryBind*)(toCount->pBinds + i), count);
+        }
+    }
+}
+
+void count_VkBindSparseInfo(
+    uint32_t featureBits,
+    const VkBindSparseInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if (toCount->waitSemaphoreCount)
+    {
+        *count += toCount->waitSemaphoreCount * 8;
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->bufferBindCount; ++i)
+        {
+            count_VkSparseBufferMemoryBindInfo(featureBits, (const VkSparseBufferMemoryBindInfo*)(toCount->pBufferBinds + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->imageOpaqueBindCount; ++i)
+        {
+            count_VkSparseImageOpaqueMemoryBindInfo(featureBits, (const VkSparseImageOpaqueMemoryBindInfo*)(toCount->pImageOpaqueBinds + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->imageBindCount; ++i)
+        {
+            count_VkSparseImageMemoryBindInfo(featureBits, (const VkSparseImageMemoryBindInfo*)(toCount->pImageBinds + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if (toCount->signalSemaphoreCount)
+    {
+        *count += toCount->signalSemaphoreCount * 8;
+    }
+}
+
 void count_VkSparseImageFormatProperties(
     uint32_t featureBits,
     const VkSparseImageFormatProperties* toCount,
@@ -625,153 +983,6 @@
     *count += sizeof(VkDeviceSize);
 }
 
-void count_VkSparseMemoryBind(
-    uint32_t featureBits,
-    const VkSparseMemoryBind* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkDeviceSize);
-    *count += sizeof(VkDeviceSize);
-    uint64_t cgen_var_4;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-    *count += sizeof(VkSparseMemoryBindFlags);
-}
-
-void count_VkSparseBufferMemoryBindInfo(
-    uint32_t featureBits,
-    const VkSparseBufferMemoryBindInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    uint64_t cgen_var_5;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i)
-    {
-        count_VkSparseMemoryBind(featureBits, (const VkSparseMemoryBind*)(toCount->pBinds + i), count);
-    }
-}
-
-void count_VkSparseImageOpaqueMemoryBindInfo(
-    uint32_t featureBits,
-    const VkSparseImageOpaqueMemoryBindInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    uint64_t cgen_var_6;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i)
-    {
-        count_VkSparseMemoryBind(featureBits, (const VkSparseMemoryBind*)(toCount->pBinds + i), count);
-    }
-}
-
-void count_VkImageSubresource(
-    uint32_t featureBits,
-    const VkImageSubresource* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkImageAspectFlags);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkOffset3D(
-    uint32_t featureBits,
-    const VkOffset3D* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(int32_t);
-    *count += sizeof(int32_t);
-    *count += sizeof(int32_t);
-}
-
-void count_VkSparseImageMemoryBind(
-    uint32_t featureBits,
-    const VkSparseImageMemoryBind* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    count_VkImageSubresource(featureBits, (VkImageSubresource*)(&toCount->subresource), count);
-    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->offset), count);
-    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->extent), count);
-    uint64_t cgen_var_7;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-    *count += sizeof(VkSparseMemoryBindFlags);
-}
-
-void count_VkSparseImageMemoryBindInfo(
-    uint32_t featureBits,
-    const VkSparseImageMemoryBindInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    uint64_t cgen_var_8;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->bindCount; ++i)
-    {
-        count_VkSparseImageMemoryBind(featureBits, (const VkSparseImageMemoryBind*)(toCount->pBinds + i), count);
-    }
-}
-
-void count_VkBindSparseInfo(
-    uint32_t featureBits,
-    const VkBindSparseInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(uint32_t);
-    if (toCount->waitSemaphoreCount)
-    {
-        *count += toCount->waitSemaphoreCount * 8;
-    }
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->bufferBindCount; ++i)
-    {
-        count_VkSparseBufferMemoryBindInfo(featureBits, (const VkSparseBufferMemoryBindInfo*)(toCount->pBufferBinds + i), count);
-    }
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->imageOpaqueBindCount; ++i)
-    {
-        count_VkSparseImageOpaqueMemoryBindInfo(featureBits, (const VkSparseImageOpaqueMemoryBindInfo*)(toCount->pImageOpaqueBinds + i), count);
-    }
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->imageBindCount; ++i)
-    {
-        count_VkSparseImageMemoryBindInfo(featureBits, (const VkSparseImageMemoryBindInfo*)(toCount->pImageBinds + i), count);
-    }
-    *count += sizeof(uint32_t);
-    if (toCount->signalSemaphoreCount)
-    {
-        *count += toCount->signalSemaphoreCount * 8;
-    }
-}
-
 void count_VkFenceCreateInfo(
     uint32_t featureBits,
     const VkFenceCreateInfo* toCount,
@@ -846,7 +1057,10 @@
     *count += 8;
     if (toCount->pQueueFamilyIndices)
     {
-        *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
+        }
     }
 }
 
@@ -861,7 +1075,7 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkBufferViewCreateFlags);
-    uint64_t cgen_var_11;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkFormat);
     *count += sizeof(VkDeviceSize);
@@ -893,7 +1107,10 @@
     *count += 8;
     if (toCount->pQueueFamilyIndices)
     {
-        *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
+        }
     }
     *count += sizeof(VkImageLayout);
 }
@@ -927,21 +1144,6 @@
     *count += sizeof(VkComponentSwizzle);
 }
 
-void count_VkImageSubresourceRange(
-    uint32_t featureBits,
-    const VkImageSubresourceRange* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkImageAspectFlags);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
 void count_VkImageViewCreateInfo(
     uint32_t featureBits,
     const VkImageViewCreateInfo* toCount,
@@ -953,7 +1155,7 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkImageViewCreateFlags);
-    uint64_t cgen_var_12;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkImageViewType);
     *count += sizeof(VkFormat);
@@ -973,7 +1175,10 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkShaderModuleCreateFlags);
     *count += 8;
-    *count += (toCount->codeSize / 4) * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += (toCount->codeSize / 4) * sizeof(const uint32_t);
+    }
 }
 
 void count_VkPipelineCacheCreateInfo(
@@ -988,7 +1193,10 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkPipelineCacheCreateFlags);
     *count += 8;
-    *count += toCount->initialDataSize * sizeof(const uint8_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->initialDataSize * sizeof(const uint8_t);
+    }
 }
 
 void count_VkSpecializationMapEntry(
@@ -1013,12 +1221,18 @@
     (void)toCount;
     (void)count;
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->mapEntryCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkSpecializationMapEntry(featureBits, (const VkSpecializationMapEntry*)(toCount->pMapEntries + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->mapEntryCount; ++i)
+        {
+            count_VkSpecializationMapEntry(featureBits, (const VkSpecializationMapEntry*)(toCount->pMapEntries + i), count);
+        }
     }
     *count += 8;
-    *count += toCount->dataSize * sizeof(const uint8_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->dataSize * sizeof(const uint8_t);
+    }
 }
 
 void count_VkPipelineShaderStageCreateInfo(
@@ -1033,7 +1247,7 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkPipelineShaderStageCreateFlags);
     *count += sizeof(VkShaderStageFlagBits);
-    uint64_t cgen_var_13;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t) + (toCount->pName ? strlen(toCount->pName) : 0);
     // WARNING PTR CHECK
@@ -1044,6 +1258,25 @@
     }
 }
 
+void count_VkComputePipelineCreateInfo(
+    uint32_t featureBits,
+    const VkComputePipelineCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineCreateFlags);
+    count_VkPipelineShaderStageCreateInfo(featureBits, (VkPipelineShaderStageCreateInfo*)(&toCount->stage), count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(int32_t);
+}
+
 void count_VkVertexInputBindingDescription(
     uint32_t featureBits,
     const VkVertexInputBindingDescription* toCount,
@@ -1083,14 +1316,20 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkPipelineVertexInputStateCreateFlags);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->vertexBindingDescriptionCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkVertexInputBindingDescription(featureBits, (const VkVertexInputBindingDescription*)(toCount->pVertexBindingDescriptions + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->vertexBindingDescriptionCount; ++i)
+        {
+            count_VkVertexInputBindingDescription(featureBits, (const VkVertexInputBindingDescription*)(toCount->pVertexBindingDescriptions + i), count);
+        }
     }
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->vertexAttributeDescriptionCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkVertexInputAttributeDescription(featureBits, (const VkVertexInputAttributeDescription*)(toCount->pVertexAttributeDescriptions + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->vertexAttributeDescriptionCount; ++i)
+        {
+            count_VkVertexInputAttributeDescription(featureBits, (const VkVertexInputAttributeDescription*)(toCount->pVertexAttributeDescriptions + i), count);
+        }
     }
 }
 
@@ -1139,42 +1378,6 @@
     *count += sizeof(float);
 }
 
-void count_VkOffset2D(
-    uint32_t featureBits,
-    const VkOffset2D* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(int32_t);
-    *count += sizeof(int32_t);
-}
-
-void count_VkExtent2D(
-    uint32_t featureBits,
-    const VkExtent2D* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkRect2D(
-    uint32_t featureBits,
-    const VkRect2D* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    count_VkOffset2D(featureBits, (VkOffset2D*)(&toCount->offset), count);
-    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->extent), count);
-}
-
 void count_VkPipelineViewportStateCreateInfo(
     uint32_t featureBits,
     const VkPipelineViewportStateCreateInfo* toCount,
@@ -1191,9 +1394,12 @@
     *count += 8;
     if (toCount->pViewports)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkViewport(featureBits, (const VkViewport*)(toCount->pViewports + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i)
+            {
+                count_VkViewport(featureBits, (const VkViewport*)(toCount->pViewports + i), count);
+            }
         }
     }
     *count += sizeof(uint32_t);
@@ -1201,9 +1407,12 @@
     *count += 8;
     if (toCount->pScissors)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->scissorCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pScissors + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->scissorCount; ++i)
+            {
+                count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pScissors + i), count);
+            }
         }
     }
 }
@@ -1249,7 +1458,10 @@
     *count += 8;
     if (toCount->pSampleMask)
     {
-        *count += (((toCount->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask);
+        if ((toCount) != nullptr)
+        {
+            *count += (((toCount->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask);
+        }
     }
     *count += sizeof(VkBool32);
     *count += sizeof(VkBool32);
@@ -1326,9 +1538,12 @@
     *count += sizeof(VkBool32);
     *count += sizeof(VkLogicOp);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkPipelineColorBlendAttachmentState(featureBits, (const VkPipelineColorBlendAttachmentState*)(toCount->pAttachments + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i)
+        {
+            count_VkPipelineColorBlendAttachmentState(featureBits, (const VkPipelineColorBlendAttachmentState*)(toCount->pAttachments + i), count);
+        }
     }
     *count += 4 * sizeof(float);
 }
@@ -1345,7 +1560,10 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkPipelineDynamicStateCreateFlags);
     *count += sizeof(uint32_t);
-    *count += toCount->dynamicStateCount * sizeof(const VkDynamicState);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->dynamicStateCount * sizeof(const VkDynamicState);
+    }
 }
 
 void count_VkGraphicsPipelineCreateInfo(
@@ -1372,9 +1590,12 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkPipelineCreateFlags);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->stageCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkPipelineShaderStageCreateInfo(featureBits, (const VkPipelineShaderStageCreateInfo*)(toCount->pStages + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->stageCount; ++i)
+        {
+            count_VkPipelineShaderStageCreateInfo(featureBits, (const VkPipelineShaderStageCreateInfo*)(toCount->pStages + i), count);
+        }
     }
     // WARNING PTR CHECK
     if (featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
@@ -1454,31 +1675,12 @@
     {
         count_VkPipelineDynamicStateCreateInfo(featureBits, (const VkPipelineDynamicStateCreateInfo*)(toCount->pDynamicState), count);
     }
-    uint64_t cgen_var_14;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
-    uint64_t cgen_var_15;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
-    uint64_t cgen_var_16;
-    *count += 1 * 8;
-    *count += sizeof(int32_t);
-}
-
-void count_VkComputePipelineCreateInfo(
-    uint32_t featureBits,
-    const VkComputePipelineCreateInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkPipelineCreateFlags);
-    count_VkPipelineShaderStageCreateInfo(featureBits, (VkPipelineShaderStageCreateInfo*)(&toCount->stage), count);
-    uint64_t cgen_var_17;
-    *count += 1 * 8;
-    uint64_t cgen_var_18;
+    uint64_t cgen_var_2;
     *count += 1 * 8;
     *count += sizeof(int32_t);
 }
@@ -1513,9 +1715,12 @@
         *count += toCount->setLayoutCount * 8;
     }
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->pushConstantRangeCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkPushConstantRange(featureBits, (const VkPushConstantRange*)(toCount->pPushConstantRanges + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->pushConstantRangeCount; ++i)
+        {
+            count_VkPushConstantRange(featureBits, (const VkPushConstantRange*)(toCount->pPushConstantRanges + i), count);
+        }
     }
 }
 
@@ -1547,6 +1752,109 @@
     *count += sizeof(VkBool32);
 }
 
+void count_VkCopyDescriptorSet(
+    uint32_t featureBits,
+    const VkCopyDescriptorSet* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkDescriptorBufferInfo(
+    uint32_t featureBits,
+    const VkDescriptorBufferInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkDescriptorImageInfo(
+    uint32_t featureBits,
+    const VkDescriptorImageInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+}
+
+void count_VkDescriptorPoolSize(
+    uint32_t featureBits,
+    const VkDescriptorPoolSize* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDescriptorType);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkDescriptorPoolCreateInfo(
+    uint32_t featureBits,
+    const VkDescriptorPoolCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDescriptorPoolCreateFlags);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->poolSizeCount; ++i)
+        {
+            count_VkDescriptorPoolSize(featureBits, (const VkDescriptorPoolSize*)(toCount->pPoolSizes + i), count);
+        }
+    }
+}
+
+void count_VkDescriptorSetAllocateInfo(
+    uint32_t featureBits,
+    const VkDescriptorSetAllocateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if (toCount->descriptorSetCount)
+    {
+        *count += toCount->descriptorSetCount * 8;
+    }
+}
+
 void count_VkDescriptorSetLayoutBinding(
     uint32_t featureBits,
     const VkDescriptorSetLayoutBinding* toCount,
@@ -1582,91 +1890,15 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkDescriptorSetLayoutCreateFlags);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->bindingCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkDescriptorSetLayoutBinding(featureBits, (const VkDescriptorSetLayoutBinding*)(toCount->pBindings + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->bindingCount; ++i)
+        {
+            count_VkDescriptorSetLayoutBinding(featureBits, (const VkDescriptorSetLayoutBinding*)(toCount->pBindings + i), count);
+        }
     }
 }
 
-void count_VkDescriptorPoolSize(
-    uint32_t featureBits,
-    const VkDescriptorPoolSize* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkDescriptorType);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkDescriptorPoolCreateInfo(
-    uint32_t featureBits,
-    const VkDescriptorPoolCreateInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkDescriptorPoolCreateFlags);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->poolSizeCount; ++i)
-    {
-        count_VkDescriptorPoolSize(featureBits, (const VkDescriptorPoolSize*)(toCount->pPoolSizes + i), count);
-    }
-}
-
-void count_VkDescriptorSetAllocateInfo(
-    uint32_t featureBits,
-    const VkDescriptorSetAllocateInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_21;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    if (toCount->descriptorSetCount)
-    {
-        *count += toCount->descriptorSetCount * 8;
-    }
-}
-
-void count_VkDescriptorImageInfo(
-    uint32_t featureBits,
-    const VkDescriptorImageInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    uint64_t cgen_var_23;
-    *count += 1 * 8;
-    uint64_t cgen_var_24;
-    *count += 1 * 8;
-    *count += sizeof(VkImageLayout);
-}
-
-void count_VkDescriptorBufferInfo(
-    uint32_t featureBits,
-    const VkDescriptorBufferInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    uint64_t cgen_var_25;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-    *count += sizeof(VkDeviceSize);
-}
-
 void count_VkWriteDescriptorSet(
     uint32_t featureBits,
     const VkWriteDescriptorSet* toCount,
@@ -1677,7 +1909,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_26;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
@@ -1689,9 +1921,12 @@
     {
         if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_SAMPLER == toCount->descriptorType) || (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == toCount->descriptorType) || (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == toCount->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == toCount->descriptorType) || (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == toCount->descriptorType))))
         {
-            for (uint32_t i = 0; i < (uint32_t)toCount->descriptorCount; ++i)
+            if ((toCount) != nullptr)
             {
-                count_VkDescriptorImageInfo(featureBits, (const VkDescriptorImageInfo*)(toCount->pImageInfo + i), count);
+                for (uint32_t i = 0; i < (uint32_t)toCount->descriptorCount; ++i)
+                {
+                    count_VkDescriptorImageInfo(featureBits, (const VkDescriptorImageInfo*)(toCount->pImageInfo + i), count);
+                }
             }
         }
     }
@@ -1701,9 +1936,12 @@
     {
         if ((!(featureBits & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == toCount->descriptorType) || (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == toCount->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == toCount->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == toCount->descriptorType))))
         {
-            for (uint32_t i = 0; i < (uint32_t)toCount->descriptorCount; ++i)
+            if ((toCount) != nullptr)
             {
-                count_VkDescriptorBufferInfo(featureBits, (const VkDescriptorBufferInfo*)(toCount->pBufferInfo + i), count);
+                for (uint32_t i = 0; i < (uint32_t)toCount->descriptorCount; ++i)
+                {
+                    count_VkDescriptorBufferInfo(featureBits, (const VkDescriptorBufferInfo*)(toCount->pBufferInfo + i), count);
+                }
             }
         }
     }
@@ -1721,50 +1959,6 @@
     }
 }
 
-void count_VkCopyDescriptorSet(
-    uint32_t featureBits,
-    const VkCopyDescriptorSet* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_28;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    uint64_t cgen_var_29;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkFramebufferCreateInfo(
-    uint32_t featureBits,
-    const VkFramebufferCreateInfo* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkFramebufferCreateFlags);
-    uint64_t cgen_var_30;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    if (toCount->attachmentCount)
-    {
-        *count += toCount->attachmentCount * 8;
-    }
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
 void count_VkAttachmentDescription(
     uint32_t featureBits,
     const VkAttachmentDescription* toCount,
@@ -1796,6 +1990,29 @@
     *count += sizeof(VkImageLayout);
 }
 
+void count_VkFramebufferCreateInfo(
+    uint32_t featureBits,
+    const VkFramebufferCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkFramebufferCreateFlags);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if (toCount->attachmentCount)
+    {
+        *count += toCount->attachmentCount * 8;
+    }
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
 void count_VkSubpassDescription(
     uint32_t featureBits,
     const VkSubpassDescription* toCount,
@@ -1807,22 +2024,31 @@
     *count += sizeof(VkSubpassDescriptionFlags);
     *count += sizeof(VkPipelineBindPoint);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->inputAttachmentCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkAttachmentReference(featureBits, (const VkAttachmentReference*)(toCount->pInputAttachments + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->inputAttachmentCount; ++i)
+        {
+            count_VkAttachmentReference(featureBits, (const VkAttachmentReference*)(toCount->pInputAttachments + i), count);
+        }
     }
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkAttachmentReference(featureBits, (const VkAttachmentReference*)(toCount->pColorAttachments + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
+        {
+            count_VkAttachmentReference(featureBits, (const VkAttachmentReference*)(toCount->pColorAttachments + i), count);
+        }
     }
     // WARNING PTR CHECK
     *count += 8;
     if (toCount->pResolveAttachments)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkAttachmentReference(featureBits, (const VkAttachmentReference*)(toCount->pResolveAttachments + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
+            {
+                count_VkAttachmentReference(featureBits, (const VkAttachmentReference*)(toCount->pResolveAttachments + i), count);
+            }
         }
     }
     // WARNING PTR CHECK
@@ -1832,7 +2058,10 @@
         count_VkAttachmentReference(featureBits, (const VkAttachmentReference*)(toCount->pDepthStencilAttachment), count);
     }
     *count += sizeof(uint32_t);
-    *count += toCount->preserveAttachmentCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->preserveAttachmentCount * sizeof(const uint32_t);
+    }
 }
 
 void count_VkSubpassDependency(
@@ -1864,19 +2093,28 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkRenderPassCreateFlags);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkAttachmentDescription(featureBits, (const VkAttachmentDescription*)(toCount->pAttachments + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i)
+        {
+            count_VkAttachmentDescription(featureBits, (const VkAttachmentDescription*)(toCount->pAttachments + i), count);
+        }
     }
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->subpassCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkSubpassDescription(featureBits, (const VkSubpassDescription*)(toCount->pSubpasses + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->subpassCount; ++i)
+        {
+            count_VkSubpassDescription(featureBits, (const VkSubpassDescription*)(toCount->pSubpasses + i), count);
+        }
     }
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->dependencyCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkSubpassDependency(featureBits, (const VkSubpassDependency*)(toCount->pDependencies + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->dependencyCount; ++i)
+        {
+            count_VkSubpassDependency(featureBits, (const VkSubpassDependency*)(toCount->pDependencies + i), count);
+        }
     }
 }
 
@@ -1904,7 +2142,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_32;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkCommandBufferLevel);
     *count += sizeof(uint32_t);
@@ -1920,10 +2158,10 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_33;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
-    uint64_t cgen_var_34;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
     *count += sizeof(VkBool32);
     *count += sizeof(VkQueryControlFlags);
@@ -1976,41 +2214,6 @@
     *count += sizeof(uint32_t);
 }
 
-void count_VkImageCopy(
-    uint32_t featureBits,
-    const VkImageCopy* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
-    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->srcOffset), count);
-    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
-    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->dstOffset), count);
-    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->extent), count);
-}
-
-void count_VkImageBlit(
-    uint32_t featureBits,
-    const VkImageBlit* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        count_VkOffset3D(featureBits, (VkOffset3D*)(toCount->srcOffsets + i), count);
-    }
-    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        count_VkOffset3D(featureBits, (VkOffset3D*)(toCount->dstOffsets + i), count);
-    }
-}
-
 void count_VkBufferImageCopy(
     uint32_t featureBits,
     const VkBufferImageCopy* toCount,
@@ -2087,6 +2290,41 @@
     *count += sizeof(uint32_t);
 }
 
+void count_VkImageBlit(
+    uint32_t featureBits,
+    const VkImageBlit* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        count_VkOffset3D(featureBits, (VkOffset3D*)(toCount->srcOffsets + i), count);
+    }
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        count_VkOffset3D(featureBits, (VkOffset3D*)(toCount->dstOffsets + i), count);
+    }
+}
+
+void count_VkImageCopy(
+    uint32_t featureBits,
+    const VkImageCopy* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->srcOffset), count);
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->dstOffset), count);
+    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->extent), count);
+}
+
 void count_VkImageResolve(
     uint32_t featureBits,
     const VkImageResolve* toCount,
@@ -2102,61 +2340,6 @@
     count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->extent), count);
 }
 
-void count_VkMemoryBarrier(
-    uint32_t featureBits,
-    const VkMemoryBarrier* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkAccessFlags);
-    *count += sizeof(VkAccessFlags);
-}
-
-void count_VkBufferMemoryBarrier(
-    uint32_t featureBits,
-    const VkBufferMemoryBarrier* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkAccessFlags);
-    *count += sizeof(VkAccessFlags);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    uint64_t cgen_var_35;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-    *count += sizeof(VkDeviceSize);
-}
-
-void count_VkImageMemoryBarrier(
-    uint32_t featureBits,
-    const VkImageMemoryBarrier* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkAccessFlags);
-    *count += sizeof(VkAccessFlags);
-    *count += sizeof(VkImageLayout);
-    *count += sizeof(VkImageLayout);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    uint64_t cgen_var_36;
-    *count += 1 * 8;
-    count_VkImageSubresourceRange(featureBits, (VkImageSubresourceRange*)(&toCount->subresourceRange), count);
-}
-
 void count_VkRenderPassBeginInfo(
     uint32_t featureBits,
     const VkRenderPassBeginInfo* toCount,
@@ -2167,9 +2350,9 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_37;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
-    uint64_t cgen_var_38;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
     count_VkRect2D(featureBits, (VkRect2D*)(&toCount->renderArea), count);
     *count += sizeof(uint32_t);
@@ -2177,79 +2360,16 @@
     *count += 8;
     if (toCount->pClearValues)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->clearValueCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkClearValue(featureBits, (const VkClearValue*)(toCount->pClearValues + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->clearValueCount; ++i)
+            {
+                count_VkClearValue(featureBits, (const VkClearValue*)(toCount->pClearValues + i), count);
+            }
         }
     }
 }
 
-void count_VkDispatchIndirectCommand(
-    uint32_t featureBits,
-    const VkDispatchIndirectCommand* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkDrawIndexedIndirectCommand(
-    uint32_t featureBits,
-    const VkDrawIndexedIndirectCommand* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(int32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkDrawIndirectCommand(
-    uint32_t featureBits,
-    const VkDrawIndirectCommand* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkBaseOutStructure(
-    uint32_t featureBits,
-    const VkBaseOutStructure* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-}
-
-void count_VkBaseInStructure(
-    uint32_t featureBits,
-    const VkBaseInStructure* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-}
-
 #endif
 #ifdef VK_VERSION_1_1
 void count_VkPhysicalDeviceSubgroupProperties(
@@ -2278,9 +2398,9 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_39;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
-    uint64_t cgen_var_40;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
     *count += sizeof(VkDeviceSize);
 }
@@ -2295,9 +2415,9 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_41;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
-    uint64_t cgen_var_42;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
     *count += sizeof(VkDeviceSize);
 }
@@ -2342,9 +2462,9 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_43;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
-    uint64_t cgen_var_44;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
 }
 
@@ -2374,9 +2494,12 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->deviceRenderAreaCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pDeviceRenderAreas + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->deviceRenderAreaCount; ++i)
+        {
+            count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pDeviceRenderAreas + i), count);
+        }
     }
 }
 
@@ -2404,11 +2527,20 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->waitSemaphoreCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->waitSemaphoreCount * sizeof(const uint32_t);
+    }
     *count += sizeof(uint32_t);
-    *count += toCount->commandBufferCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->commandBufferCount * sizeof(const uint32_t);
+    }
     *count += sizeof(uint32_t);
-    *count += toCount->signalSemaphoreCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->signalSemaphoreCount * sizeof(const uint32_t);
+    }
 }
 
 void count_VkDeviceGroupBindSparseInfo(
@@ -2436,7 +2568,10 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->deviceIndexCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->deviceIndexCount * sizeof(const uint32_t);
+    }
 }
 
 void count_VkBindImageMemoryDeviceGroupInfo(
@@ -2450,11 +2585,17 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->deviceIndexCount * sizeof(const uint32_t);
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->splitInstanceBindRegionCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pSplitInstanceBindRegions + i), count);
+        *count += toCount->deviceIndexCount * sizeof(const uint32_t);
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->splitInstanceBindRegionCount; ++i)
+        {
+            count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pSplitInstanceBindRegions + i), count);
+        }
     }
 }
 
@@ -2500,7 +2641,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_46;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
@@ -2514,7 +2655,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_47;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
@@ -2528,7 +2669,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_48;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
@@ -2720,9 +2861,12 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->aspectReferenceCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkInputAttachmentAspectReference(featureBits, (const VkInputAttachmentAspectReference*)(toCount->pAspectReferences + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->aspectReferenceCount; ++i)
+        {
+            count_VkInputAttachmentAspectReference(featureBits, (const VkInputAttachmentAspectReference*)(toCount->pAspectReferences + i), count);
+        }
     }
 }
 
@@ -2763,11 +2907,20 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->subpassCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->subpassCount * sizeof(const uint32_t);
+    }
     *count += sizeof(uint32_t);
-    *count += toCount->dependencyCount * sizeof(const int32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->dependencyCount * sizeof(const int32_t);
+    }
     *count += sizeof(uint32_t);
-    *count += toCount->correlationMaskCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->correlationMaskCount * sizeof(const uint32_t);
+    }
 }
 
 void count_VkPhysicalDeviceMultiviewFeatures(
@@ -2799,9 +2952,9 @@
     *count += sizeof(uint32_t);
 }
 
-void count_VkPhysicalDeviceVariablePointerFeatures(
+void count_VkPhysicalDeviceVariablePointersFeatures(
     uint32_t featureBits,
-    const VkPhysicalDeviceVariablePointerFeatures* toCount,
+    const VkPhysicalDeviceVariablePointersFeatures* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -2897,7 +3050,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_49;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
@@ -2981,15 +3134,18 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkDescriptorUpdateTemplateCreateFlags);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->descriptorUpdateEntryCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkDescriptorUpdateTemplateEntry(featureBits, (const VkDescriptorUpdateTemplateEntry*)(toCount->pDescriptorUpdateEntries + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->descriptorUpdateEntryCount; ++i)
+        {
+            count_VkDescriptorUpdateTemplateEntry(featureBits, (const VkDescriptorUpdateTemplateEntry*)(toCount->pDescriptorUpdateEntries + i), count);
+        }
     }
     *count += sizeof(VkDescriptorUpdateTemplateType);
-    uint64_t cgen_var_50;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkPipelineBindPoint);
-    uint64_t cgen_var_51;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
 }
@@ -3226,9 +3382,9 @@
     *count += sizeof(VkBool32);
 }
 
-void count_VkPhysicalDeviceShaderDrawParameterFeatures(
+void count_VkPhysicalDeviceShaderDrawParametersFeatures(
     uint32_t featureBits,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* toCount,
+    const VkPhysicalDeviceShaderDrawParametersFeatures* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -3240,6 +3396,1030 @@
 }
 
 #endif
+#ifdef VK_VERSION_1_2
+void count_VkPhysicalDeviceVulkan11Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan11Features* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceVulkan11Properties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan11Properties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += VK_UUID_SIZE * sizeof(uint8_t);
+    *count += VK_UUID_SIZE * sizeof(uint8_t);
+    *count += VK_LUID_SIZE * sizeof(uint8_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkShaderStageFlags);
+    *count += sizeof(VkSubgroupFeatureFlags);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkPointClippingBehavior);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkPhysicalDeviceVulkan12Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan12Features* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkConformanceVersion(
+    uint32_t featureBits,
+    const VkConformanceVersion* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+    *count += sizeof(uint8_t);
+}
+
+void count_VkPhysicalDeviceVulkan12Properties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan12Properties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDriverId);
+    *count += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
+    *count += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
+    count_VkConformanceVersion(featureBits, (VkConformanceVersion*)(&toCount->conformanceVersion), count);
+    *count += sizeof(VkShaderFloatControlsIndependence);
+    *count += sizeof(VkShaderFloatControlsIndependence);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkResolveModeFlags);
+    *count += sizeof(VkResolveModeFlags);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint64_t);
+    *count += sizeof(VkSampleCountFlags);
+}
+
+void count_VkImageFormatListCreateInfo(
+    uint32_t featureBits,
+    const VkImageFormatListCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->viewFormatCount * sizeof(const VkFormat);
+    }
+}
+
+void count_VkAttachmentDescription2(
+    uint32_t featureBits,
+    const VkAttachmentDescription2* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAttachmentDescriptionFlags);
+    *count += sizeof(VkFormat);
+    *count += sizeof(VkSampleCountFlagBits);
+    *count += sizeof(VkAttachmentLoadOp);
+    *count += sizeof(VkAttachmentStoreOp);
+    *count += sizeof(VkAttachmentLoadOp);
+    *count += sizeof(VkAttachmentStoreOp);
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(VkImageLayout);
+}
+
+void count_VkAttachmentReference2(
+    uint32_t featureBits,
+    const VkAttachmentReference2* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(VkImageAspectFlags);
+}
+
+void count_VkSubpassDescription2(
+    uint32_t featureBits,
+    const VkSubpassDescription2* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSubpassDescriptionFlags);
+    *count += sizeof(VkPipelineBindPoint);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->inputAttachmentCount; ++i)
+        {
+            count_VkAttachmentReference2(featureBits, (const VkAttachmentReference2*)(toCount->pInputAttachments + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
+        {
+            count_VkAttachmentReference2(featureBits, (const VkAttachmentReference2*)(toCount->pColorAttachments + i), count);
+        }
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pResolveAttachments)
+    {
+        if ((toCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
+            {
+                count_VkAttachmentReference2(featureBits, (const VkAttachmentReference2*)(toCount->pResolveAttachments + i), count);
+            }
+        }
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pDepthStencilAttachment)
+    {
+        count_VkAttachmentReference2(featureBits, (const VkAttachmentReference2*)(toCount->pDepthStencilAttachment), count);
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->preserveAttachmentCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkSubpassDependency2(
+    uint32_t featureBits,
+    const VkSubpassDependency2* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkPipelineStageFlags);
+    *count += sizeof(VkPipelineStageFlags);
+    *count += sizeof(VkAccessFlags);
+    *count += sizeof(VkAccessFlags);
+    *count += sizeof(VkDependencyFlags);
+    *count += sizeof(int32_t);
+}
+
+void count_VkRenderPassCreateInfo2(
+    uint32_t featureBits,
+    const VkRenderPassCreateInfo2* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkRenderPassCreateFlags);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i)
+        {
+            count_VkAttachmentDescription2(featureBits, (const VkAttachmentDescription2*)(toCount->pAttachments + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->subpassCount; ++i)
+        {
+            count_VkSubpassDescription2(featureBits, (const VkSubpassDescription2*)(toCount->pSubpasses + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->dependencyCount; ++i)
+        {
+            count_VkSubpassDependency2(featureBits, (const VkSubpassDependency2*)(toCount->pDependencies + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->correlatedViewMaskCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkSubpassBeginInfo(
+    uint32_t featureBits,
+    const VkSubpassBeginInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSubpassContents);
+}
+
+void count_VkSubpassEndInfo(
+    uint32_t featureBits,
+    const VkSubpassEndInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+}
+
+void count_VkPhysicalDevice8BitStorageFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDevice8BitStorageFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceDriverProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDriverProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDriverId);
+    *count += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
+    *count += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
+    count_VkConformanceVersion(featureBits, (VkConformanceVersion*)(&toCount->conformanceVersion), count);
+}
+
+void count_VkPhysicalDeviceShaderAtomicInt64Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderAtomicInt64Features* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceShaderFloat16Int8Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderFloat16Int8Features* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceFloatControlsProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFloatControlsProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkShaderFloatControlsIndependence);
+    *count += sizeof(VkShaderFloatControlsIndependence);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    uint32_t featureBits,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pBindingFlags)
+    {
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->bindingCount * sizeof(const VkDescriptorBindingFlags);
+        }
+    }
+}
+
+void count_VkPhysicalDeviceDescriptorIndexingFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceDescriptorIndexingProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDescriptorIndexingProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    uint32_t featureBits,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->descriptorSetCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    uint32_t featureBits,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkSubpassDescriptionDepthStencilResolve(
+    uint32_t featureBits,
+    const VkSubpassDescriptionDepthStencilResolve* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkResolveModeFlagBits);
+    *count += sizeof(VkResolveModeFlagBits);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pDepthStencilResolveAttachment)
+    {
+        count_VkAttachmentReference2(featureBits, (const VkAttachmentReference2*)(toCount->pDepthStencilResolveAttachment), count);
+    }
+}
+
+void count_VkPhysicalDeviceDepthStencilResolveProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDepthStencilResolveProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkResolveModeFlags);
+    *count += sizeof(VkResolveModeFlags);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkImageStencilUsageCreateInfo(
+    uint32_t featureBits,
+    const VkImageStencilUsageCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkImageUsageFlags);
+}
+
+void count_VkSamplerReductionModeCreateInfo(
+    uint32_t featureBits,
+    const VkSamplerReductionModeCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSamplerReductionMode);
+}
+
+void count_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceImagelessFramebufferFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkFramebufferAttachmentImageInfo(
+    uint32_t featureBits,
+    const VkFramebufferAttachmentImageInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkImageCreateFlags);
+    *count += sizeof(VkImageUsageFlags);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->viewFormatCount * sizeof(const VkFormat);
+    }
+}
+
+void count_VkFramebufferAttachmentsCreateInfo(
+    uint32_t featureBits,
+    const VkFramebufferAttachmentsCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->attachmentImageInfoCount; ++i)
+        {
+            count_VkFramebufferAttachmentImageInfo(featureBits, (const VkFramebufferAttachmentImageInfo*)(toCount->pAttachmentImageInfos + i), count);
+        }
+    }
+}
+
+void count_VkRenderPassAttachmentBeginInfo(
+    uint32_t featureBits,
+    const VkRenderPassAttachmentBeginInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if (toCount->attachmentCount)
+    {
+        *count += toCount->attachmentCount * 8;
+    }
+}
+
+void count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkAttachmentReferenceStencilLayout(
+    uint32_t featureBits,
+    const VkAttachmentReferenceStencilLayout* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkImageLayout);
+}
+
+void count_VkAttachmentDescriptionStencilLayout(
+    uint32_t featureBits,
+    const VkAttachmentDescriptionStencilLayout* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(VkImageLayout);
+}
+
+void count_VkPhysicalDeviceHostQueryResetFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceHostQueryResetFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceTimelineSemaphoreProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkSemaphoreTypeCreateInfo(
+    uint32_t featureBits,
+    const VkSemaphoreTypeCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSemaphoreType);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkTimelineSemaphoreSubmitInfo(
+    uint32_t featureBits,
+    const VkTimelineSemaphoreSubmitInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pWaitSemaphoreValues)
+    {
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->waitSemaphoreValueCount * sizeof(const uint64_t);
+        }
+    }
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pSignalSemaphoreValues)
+    {
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->signalSemaphoreValueCount * sizeof(const uint64_t);
+        }
+    }
+}
+
+void count_VkSemaphoreWaitInfo(
+    uint32_t featureBits,
+    const VkSemaphoreWaitInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSemaphoreWaitFlags);
+    *count += sizeof(uint32_t);
+    if (toCount->semaphoreCount)
+    {
+        *count += toCount->semaphoreCount * 8;
+    }
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->semaphoreCount * sizeof(const uint64_t);
+    }
+}
+
+void count_VkSemaphoreSignalInfo(
+    uint32_t featureBits,
+    const VkSemaphoreSignalInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint64_t);
+}
+
+void count_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkBufferDeviceAddressInfo(
+    uint32_t featureBits,
+    const VkBufferDeviceAddressInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+}
+
+void count_VkBufferOpaqueCaptureAddressCreateInfo(
+    uint32_t featureBits,
+    const VkBufferOpaqueCaptureAddressCreateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    uint32_t featureBits,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    uint32_t featureBits,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+}
+
+#endif
 #ifdef VK_KHR_surface
 void count_VkSurfaceCapabilitiesKHR(
     uint32_t featureBits,
@@ -3286,7 +4466,7 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkSwapchainCreateFlagsKHR);
-    uint64_t cgen_var_52;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
     *count += sizeof(VkFormat);
@@ -3300,13 +4480,16 @@
     *count += 8;
     if (toCount->pQueueFamilyIndices)
     {
-        *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
+        }
     }
     *count += sizeof(VkSurfaceTransformFlagBitsKHR);
     *count += sizeof(VkCompositeAlphaFlagBitsKHR);
     *count += sizeof(VkPresentModeKHR);
     *count += sizeof(VkBool32);
-    uint64_t cgen_var_53;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
 }
 
@@ -3330,12 +4513,18 @@
     {
         *count += toCount->swapchainCount * 8;
     }
-    *count += toCount->swapchainCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->swapchainCount * sizeof(const uint32_t);
+    }
     // WARNING PTR CHECK
     *count += 8;
     if (toCount->pResults)
     {
-        *count += toCount->swapchainCount * sizeof(VkResult);
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->swapchainCount * sizeof(VkResult);
+        }
     }
 }
 
@@ -3349,7 +4538,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_56;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
@@ -3363,7 +4552,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_57;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
 }
@@ -3378,12 +4567,12 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_58;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint64_t);
-    uint64_t cgen_var_59;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
-    uint64_t cgen_var_60;
+    uint64_t cgen_var_2;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
 }
@@ -3413,7 +4602,10 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->swapchainCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->swapchainCount * sizeof(const uint32_t);
+    }
     *count += sizeof(VkDeviceGroupPresentModeFlagBitsKHR);
 }
 
@@ -3432,24 +4624,6 @@
 
 #endif
 #ifdef VK_KHR_display
-void count_VkDisplayPropertiesKHR(
-    uint32_t featureBits,
-    const VkDisplayPropertiesKHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    uint64_t cgen_var_61;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t) + (toCount->displayName ? strlen(toCount->displayName) : 0);
-    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->physicalDimensions), count);
-    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->physicalResolution), count);
-    *count += sizeof(VkSurfaceTransformFlagsKHR);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-}
-
 void count_VkDisplayModeParametersKHR(
     uint32_t featureBits,
     const VkDisplayModeParametersKHR* toCount,
@@ -3462,19 +4636,6 @@
     *count += sizeof(uint32_t);
 }
 
-void count_VkDisplayModePropertiesKHR(
-    uint32_t featureBits,
-    const VkDisplayModePropertiesKHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    uint64_t cgen_var_62;
-    *count += 1 * 8;
-    count_VkDisplayModeParametersKHR(featureBits, (VkDisplayModeParametersKHR*)(&toCount->parameters), count);
-}
-
 void count_VkDisplayModeCreateInfoKHR(
     uint32_t featureBits,
     const VkDisplayModeCreateInfoKHR* toCount,
@@ -3489,6 +4650,19 @@
     count_VkDisplayModeParametersKHR(featureBits, (VkDisplayModeParametersKHR*)(&toCount->parameters), count);
 }
 
+void count_VkDisplayModePropertiesKHR(
+    uint32_t featureBits,
+    const VkDisplayModePropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    count_VkDisplayModeParametersKHR(featureBits, (VkDisplayModeParametersKHR*)(&toCount->parameters), count);
+}
+
 void count_VkDisplayPlaneCapabilitiesKHR(
     uint32_t featureBits,
     const VkDisplayPlaneCapabilitiesKHR* toCount,
@@ -3516,11 +4690,29 @@
     (void)featureBits;
     (void)toCount;
     (void)count;
-    uint64_t cgen_var_63;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
 }
 
+void count_VkDisplayPropertiesKHR(
+    uint32_t featureBits,
+    const VkDisplayPropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t) + (toCount->displayName ? strlen(toCount->displayName) : 0);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->physicalDimensions), count);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->physicalResolution), count);
+    *count += sizeof(VkSurfaceTransformFlagsKHR);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
 void count_VkDisplaySurfaceCreateInfoKHR(
     uint32_t featureBits,
     const VkDisplaySurfaceCreateInfoKHR* toCount,
@@ -3532,7 +4724,7 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkDisplaySurfaceCreateFlagsKHR);
-    uint64_t cgen_var_64;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
@@ -3631,33 +4823,6 @@
 }
 
 #endif
-#ifdef VK_KHR_mir_surface
-void count_VkMirSurfaceCreateInfoKHR(
-    uint32_t featureBits,
-    const VkMirSurfaceCreateInfoKHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkMirSurfaceCreateFlagsKHR);
-    // WARNING PTR CHECK
-    *count += 8;
-    if (toCount->connection)
-    {
-        *count += sizeof(MirConnection);
-    }
-    // WARNING PTR CHECK
-    *count += 8;
-    if (toCount->mirSurface)
-    {
-        *count += sizeof(MirSurface);
-    }
-}
-
-#endif
 #ifdef VK_KHR_android_surface
 void count_VkAndroidSurfaceCreateInfoKHR(
     uint32_t featureBits,
@@ -3773,7 +4938,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_65;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkExternalMemoryHandleTypeFlagBits);
 }
@@ -3817,7 +4982,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_66;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkExternalMemoryHandleTypeFlagBits);
 }
@@ -3839,14 +5004,23 @@
     {
         *count += toCount->acquireCount * 8;
     }
-    *count += toCount->acquireCount * sizeof(const uint64_t);
-    *count += toCount->acquireCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->acquireCount * sizeof(const uint64_t);
+    }
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->acquireCount * sizeof(const uint32_t);
+    }
     *count += sizeof(uint32_t);
     if (toCount->releaseCount)
     {
         *count += toCount->releaseCount * 8;
     }
-    *count += toCount->releaseCount * sizeof(const uint64_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->releaseCount * sizeof(const uint64_t);
+    }
 }
 
 #endif
@@ -3865,7 +5039,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_69;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkSemaphoreImportFlags);
     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
@@ -3908,14 +5082,20 @@
     *count += 8;
     if (toCount->pWaitSemaphoreValues)
     {
-        *count += toCount->waitSemaphoreValuesCount * sizeof(const uint64_t);
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->waitSemaphoreValuesCount * sizeof(const uint64_t);
+        }
     }
     *count += sizeof(uint32_t);
     // WARNING PTR CHECK
     *count += 8;
     if (toCount->pSignalSemaphoreValues)
     {
-        *count += toCount->signalSemaphoreValuesCount * sizeof(const uint64_t);
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->signalSemaphoreValuesCount * sizeof(const uint64_t);
+        }
     }
 }
 
@@ -3929,7 +5109,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_70;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
 }
@@ -3946,7 +5126,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_71;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkSemaphoreImportFlags);
     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
@@ -3963,7 +5143,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_72;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
 }
@@ -3984,6 +5164,8 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -4013,9 +5195,12 @@
     *count += 8;
     if (toCount->pRectangles)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->rectangleCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkRectLayerKHR(featureBits, (const VkRectLayerKHR*)(toCount->pRectangles + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->rectangleCount; ++i)
+            {
+                count_VkRectLayerKHR(featureBits, (const VkRectLayerKHR*)(toCount->pRectangles + i), count);
+            }
         }
     }
 }
@@ -4035,9 +5220,12 @@
     *count += 8;
     if (toCount->pRegions)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->swapchainCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkPresentRegionKHR(featureBits, (const VkPresentRegionKHR*)(toCount->pRegions + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->swapchainCount; ++i)
+            {
+                count_VkPresentRegionKHR(featureBits, (const VkPresentRegionKHR*)(toCount->pRegions + i), count);
+            }
         }
     }
 }
@@ -4045,160 +5233,9 @@
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
-void count_VkAttachmentDescription2KHR(
-    uint32_t featureBits,
-    const VkAttachmentDescription2KHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkAttachmentDescriptionFlags);
-    *count += sizeof(VkFormat);
-    *count += sizeof(VkSampleCountFlagBits);
-    *count += sizeof(VkAttachmentLoadOp);
-    *count += sizeof(VkAttachmentStoreOp);
-    *count += sizeof(VkAttachmentLoadOp);
-    *count += sizeof(VkAttachmentStoreOp);
-    *count += sizeof(VkImageLayout);
-    *count += sizeof(VkImageLayout);
-}
-
-void count_VkAttachmentReference2KHR(
-    uint32_t featureBits,
-    const VkAttachmentReference2KHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(uint32_t);
-    *count += sizeof(VkImageLayout);
-    *count += sizeof(VkImageAspectFlags);
-}
-
-void count_VkSubpassDescription2KHR(
-    uint32_t featureBits,
-    const VkSubpassDescription2KHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkSubpassDescriptionFlags);
-    *count += sizeof(VkPipelineBindPoint);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->inputAttachmentCount; ++i)
-    {
-        count_VkAttachmentReference2KHR(featureBits, (const VkAttachmentReference2KHR*)(toCount->pInputAttachments + i), count);
-    }
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
-    {
-        count_VkAttachmentReference2KHR(featureBits, (const VkAttachmentReference2KHR*)(toCount->pColorAttachments + i), count);
-    }
-    // WARNING PTR CHECK
-    *count += 8;
-    if (toCount->pResolveAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toCount->colorAttachmentCount; ++i)
-        {
-            count_VkAttachmentReference2KHR(featureBits, (const VkAttachmentReference2KHR*)(toCount->pResolveAttachments + i), count);
-        }
-    }
-    // WARNING PTR CHECK
-    *count += 8;
-    if (toCount->pDepthStencilAttachment)
-    {
-        count_VkAttachmentReference2KHR(featureBits, (const VkAttachmentReference2KHR*)(toCount->pDepthStencilAttachment), count);
-    }
-    *count += sizeof(uint32_t);
-    *count += toCount->preserveAttachmentCount * sizeof(const uint32_t);
-}
-
-void count_VkSubpassDependency2KHR(
-    uint32_t featureBits,
-    const VkSubpassDependency2KHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(VkPipelineStageFlags);
-    *count += sizeof(VkPipelineStageFlags);
-    *count += sizeof(VkAccessFlags);
-    *count += sizeof(VkAccessFlags);
-    *count += sizeof(VkDependencyFlags);
-    *count += sizeof(int32_t);
-}
-
-void count_VkRenderPassCreateInfo2KHR(
-    uint32_t featureBits,
-    const VkRenderPassCreateInfo2KHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkRenderPassCreateFlags);
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->attachmentCount; ++i)
-    {
-        count_VkAttachmentDescription2KHR(featureBits, (const VkAttachmentDescription2KHR*)(toCount->pAttachments + i), count);
-    }
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->subpassCount; ++i)
-    {
-        count_VkSubpassDescription2KHR(featureBits, (const VkSubpassDescription2KHR*)(toCount->pSubpasses + i), count);
-    }
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->dependencyCount; ++i)
-    {
-        count_VkSubpassDependency2KHR(featureBits, (const VkSubpassDependency2KHR*)(toCount->pDependencies + i), count);
-    }
-    *count += sizeof(uint32_t);
-    *count += toCount->correlatedViewMaskCount * sizeof(const uint32_t);
-}
-
-void count_VkSubpassBeginInfoKHR(
-    uint32_t featureBits,
-    const VkSubpassBeginInfoKHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkSubpassContents);
-}
-
-void count_VkSubpassEndInfoKHR(
-    uint32_t featureBits,
-    const VkSubpassEndInfoKHR* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-}
-
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void count_VkSharedPresentSurfaceCapabilitiesKHR(
@@ -4230,7 +5267,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_73;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkFenceImportFlags);
     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
@@ -4268,7 +5305,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_74;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
 }
@@ -4285,7 +5322,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_75;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkFenceImportFlags);
     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
@@ -4302,12 +5339,129 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_76;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkExternalFenceHandleTypeFlagBits);
 }
 
 #endif
+#ifdef VK_KHR_performance_query
+void count_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPerformanceCounterKHR(
+    uint32_t featureBits,
+    const VkPerformanceCounterKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPerformanceCounterUnitKHR);
+    *count += sizeof(VkPerformanceCounterScopeKHR);
+    *count += sizeof(VkPerformanceCounterStorageKHR);
+    *count += VK_UUID_SIZE * sizeof(uint8_t);
+}
+
+void count_VkPerformanceCounterDescriptionKHR(
+    uint32_t featureBits,
+    const VkPerformanceCounterDescriptionKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPerformanceCounterDescriptionFlagsKHR);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+}
+
+void count_VkQueryPoolPerformanceCreateInfoKHR(
+    uint32_t featureBits,
+    const VkQueryPoolPerformanceCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->counterIndexCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkPerformanceCounterResultKHR(
+    uint32_t featureBits,
+    const VkPerformanceCounterResultKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(int32_t);
+}
+
+void count_VkAcquireProfilingLockInfoKHR(
+    uint32_t featureBits,
+    const VkAcquireProfilingLockInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAcquireProfilingLockFlagsKHR);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkPerformanceQuerySubmitInfoKHR(
+    uint32_t featureBits,
+    const VkPerformanceQuerySubmitInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -4321,7 +5475,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_77;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
@@ -4404,7 +5558,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_78;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(uint32_t);
 }
@@ -4432,9 +5586,42 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void count_VkImageFormatListCreateInfoKHR(
+#endif
+#ifdef VK_KHR_sampler_ycbcr_conversion
+#endif
+#ifdef VK_KHR_bind_memory2
+#endif
+#ifdef VK_KHR_portability_subset
+void count_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
     uint32_t featureBits,
-    const VkImageFormatListCreateInfoKHR* toCount,
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -4443,22 +5630,94 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->viewFormatCount * sizeof(const VkFormat);
 }
 
 #endif
-#ifdef VK_KHR_sampler_ycbcr_conversion
-#endif
-#ifdef VK_KHR_bind_memory2
-#endif
 #ifdef VK_KHR_maintenance3
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
-void count_VkPhysicalDevice8BitStorageFeaturesKHR(
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+void count_VkPhysicalDeviceShaderClockFeaturesKHR(
     uint32_t featureBits,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* toCount,
+    const VkPhysicalDeviceShaderClockFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void count_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void count_VkFragmentShadingRateAttachmentInfoKHR(
+    uint32_t featureBits,
+    const VkFragmentShadingRateAttachmentInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkAttachmentReference2(featureBits, (const VkAttachmentReference2*)(toCount->pFragmentShadingRateAttachment), count);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->shadingRateAttachmentTexelSize), count);
+}
+
+void count_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->fragmentSize), count);
+    *count += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+}
+
+void count_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -4471,11 +5730,56 @@
     *count += sizeof(VkBool32);
 }
 
-#endif
-#ifdef VK_KHR_shader_float16_int8
-void count_VkPhysicalDeviceShaderFloat16Int8Features(
+void count_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
     uint32_t featureBits,
-    const VkPhysicalDeviceShaderFloat16Int8Features* toCount,
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->minFragmentShadingRateAttachmentTexelSize), count);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->maxFragmentShadingRateAttachmentTexelSize), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->maxFragmentSize), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkSampleCountFlagBits);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceFragmentShadingRateKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSampleCountFlags);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->fragmentSize), count);
+}
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void count_VkSurfaceProtectedCapabilitiesKHR(
+    uint32_t featureBits,
+    const VkSurfaceProtectedCapabilitiesKHR* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -4484,9 +5788,393 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkBool32);
 }
 
+void count_VkPipelineInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+}
+
+void count_VkPipelineExecutablePropertiesKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutablePropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkShaderStageFlags);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPipelineExecutableInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPipelineExecutableStatisticValueKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableStatisticValueKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPipelineExecutableStatisticKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableStatisticKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += sizeof(VkPipelineExecutableStatisticFormatKHR);
+    count_VkPipelineExecutableStatisticValueKHR(featureBits, (VkPipelineExecutableStatisticValueKHR*)(&toCount->value), count);
+}
+
+void count_VkPipelineExecutableInternalRepresentationKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableInternalRepresentationKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += sizeof(VkBool32);
+    *count += 8;
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pData)
+    {
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->dataSize * sizeof(uint8_t);
+        }
+    }
+}
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void count_VkPipelineLibraryCreateInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineLibraryCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if (toCount->libraryCount)
+    {
+        *count += toCount->libraryCount * 8;
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void count_VkBufferCopy2KHR(
+    uint32_t featureBits,
+    const VkBufferCopy2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkCopyBufferInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyBufferInfo2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i)
+        {
+            count_VkBufferCopy2KHR(featureBits, (const VkBufferCopy2KHR*)(toCount->pRegions + i), count);
+        }
+    }
+}
+
+void count_VkImageCopy2KHR(
+    uint32_t featureBits,
+    const VkImageCopy2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->srcOffset), count);
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->dstOffset), count);
+    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->extent), count);
+}
+
+void count_VkCopyImageInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyImageInfo2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i)
+        {
+            count_VkImageCopy2KHR(featureBits, (const VkImageCopy2KHR*)(toCount->pRegions + i), count);
+        }
+    }
+}
+
+void count_VkBufferImageCopy2KHR(
+    uint32_t featureBits,
+    const VkBufferImageCopy2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->imageSubresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->imageOffset), count);
+    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->imageExtent), count);
+}
+
+void count_VkCopyBufferToImageInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyBufferToImageInfo2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i)
+        {
+            count_VkBufferImageCopy2KHR(featureBits, (const VkBufferImageCopy2KHR*)(toCount->pRegions + i), count);
+        }
+    }
+}
+
+void count_VkCopyImageToBufferInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyImageToBufferInfo2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i)
+        {
+            count_VkBufferImageCopy2KHR(featureBits, (const VkBufferImageCopy2KHR*)(toCount->pRegions + i), count);
+        }
+    }
+}
+
+void count_VkImageBlit2KHR(
+    uint32_t featureBits,
+    const VkImageBlit2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        count_VkOffset3D(featureBits, (VkOffset3D*)(toCount->srcOffsets + i), count);
+    }
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        count_VkOffset3D(featureBits, (VkOffset3D*)(toCount->dstOffsets + i), count);
+    }
+}
+
+void count_VkBlitImageInfo2KHR(
+    uint32_t featureBits,
+    const VkBlitImageInfo2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i)
+        {
+            count_VkImageBlit2KHR(featureBits, (const VkImageBlit2KHR*)(toCount->pRegions + i), count);
+        }
+    }
+    *count += sizeof(VkFilter);
+}
+
+void count_VkImageResolve2KHR(
+    uint32_t featureBits,
+    const VkImageResolve2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->srcSubresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->srcOffset), count);
+    count_VkImageSubresourceLayers(featureBits, (VkImageSubresourceLayers*)(&toCount->dstSubresource), count);
+    count_VkOffset3D(featureBits, (VkOffset3D*)(&toCount->dstOffset), count);
+    count_VkExtent3D(featureBits, (VkExtent3D*)(&toCount->extent), count);
+}
+
+void count_VkResolveImageInfo2KHR(
+    uint32_t featureBits,
+    const VkResolveImageInfo2KHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkImageLayout);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->regionCount; ++i)
+        {
+            count_VkImageResolve2KHR(featureBits, (const VkImageResolve2KHR*)(toCount->pRegions + i), count);
+        }
+    }
+}
+
 #endif
 #ifdef VK_ANDROID_native_buffer
 void count_VkNativeBufferANDROID(
@@ -4590,7 +6278,10 @@
     *count += sizeof(uint64_t);
     *count += sizeof(uint64_t);
     *count += 8;
-    *count += toCount->tagSize * sizeof(const uint8_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->tagSize * sizeof(const uint8_t);
+    }
 }
 
 void count_VkDebugMarkerMarkerInfoEXT(
@@ -4647,13 +6338,98 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_79;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
-    uint64_t cgen_var_80;
+    uint64_t cgen_var_1;
     *count += 1 * 8;
 }
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void count_VkImageViewHandleInfoNVX(
+    uint32_t featureBits,
+    const VkImageViewHandleInfoNVX* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDescriptorType);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+}
+
+void count_VkImageViewAddressPropertiesNVX(
+    uint32_t featureBits,
+    const VkImageViewAddressPropertiesNVX* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceAddress);
+    *count += sizeof(VkDeviceSize);
+}
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -4713,6 +6489,37 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void count_VkStreamDescriptorSurfaceCreateInfoGGP(
+    uint32_t featureBits,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkStreamDescriptorSurfaceCreateFlagsGGP);
+    *count += sizeof(GgpStreamDescriptor);
+}
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void count_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -4810,14 +6617,23 @@
     {
         *count += toCount->acquireCount * 8;
     }
-    *count += toCount->acquireCount * sizeof(const uint64_t);
-    *count += toCount->acquireCount * sizeof(const uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->acquireCount * sizeof(const uint64_t);
+    }
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->acquireCount * sizeof(const uint32_t);
+    }
     *count += sizeof(uint32_t);
     if (toCount->releaseCount)
     {
         *count += toCount->releaseCount * 8;
     }
-    *count += toCount->releaseCount * sizeof(const uint64_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->releaseCount * sizeof(const uint64_t);
+    }
 }
 
 #endif
@@ -4833,7 +6649,10 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->disabledValidationCheckCount * sizeof(const VkValidationCheckEXT);
+    }
 }
 
 #endif
@@ -4862,6 +6681,49 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void count_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void count_VkImageViewASTCDecodeModeEXT(
+    uint32_t featureBits,
+    const VkImageViewASTCDecodeModeEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkFormat);
+}
+
+void count_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void count_VkConditionalRenderingBeginInfoEXT(
     uint32_t featureBits,
@@ -4873,7 +6735,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_83;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
     *count += sizeof(VkDeviceSize);
     *count += sizeof(VkConditionalRenderingFlagsEXT);
@@ -4907,239 +6769,6 @@
 }
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void count_VkDeviceGeneratedCommandsFeaturesNVX(
-    uint32_t featureBits,
-    const VkDeviceGeneratedCommandsFeaturesNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkBool32);
-}
-
-void count_VkDeviceGeneratedCommandsLimitsNVX(
-    uint32_t featureBits,
-    const VkDeviceGeneratedCommandsLimitsNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkIndirectCommandsTokenNVX(
-    uint32_t featureBits,
-    const VkIndirectCommandsTokenNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkIndirectCommandsTokenTypeNVX);
-    uint64_t cgen_var_84;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-}
-
-void count_VkIndirectCommandsLayoutTokenNVX(
-    uint32_t featureBits,
-    const VkIndirectCommandsLayoutTokenNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkIndirectCommandsTokenTypeNVX);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkIndirectCommandsLayoutCreateInfoNVX(
-    uint32_t featureBits,
-    const VkIndirectCommandsLayoutCreateInfoNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkPipelineBindPoint);
-    *count += sizeof(VkIndirectCommandsLayoutUsageFlagsNVX);
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->tokenCount; ++i)
-    {
-        count_VkIndirectCommandsLayoutTokenNVX(featureBits, (const VkIndirectCommandsLayoutTokenNVX*)(toCount->pTokens + i), count);
-    }
-}
-
-void count_VkCmdProcessCommandsInfoNVX(
-    uint32_t featureBits,
-    const VkCmdProcessCommandsInfoNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_85;
-    *count += 1 * 8;
-    uint64_t cgen_var_86;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->indirectCommandsTokenCount; ++i)
-    {
-        count_VkIndirectCommandsTokenNVX(featureBits, (const VkIndirectCommandsTokenNVX*)(toCount->pIndirectCommandsTokens + i), count);
-    }
-    *count += sizeof(uint32_t);
-    uint64_t cgen_var_87;
-    *count += 1 * 8;
-    uint64_t cgen_var_88;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-    uint64_t cgen_var_89;
-    *count += 1 * 8;
-    *count += sizeof(VkDeviceSize);
-}
-
-void count_VkCmdReserveSpaceForCommandsInfoNVX(
-    uint32_t featureBits,
-    const VkCmdReserveSpaceForCommandsInfoNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_90;
-    *count += 1 * 8;
-    uint64_t cgen_var_91;
-    *count += 1 * 8;
-    *count += sizeof(uint32_t);
-}
-
-void count_VkObjectTableCreateInfoNVX(
-    uint32_t featureBits,
-    const VkObjectTableCreateInfoNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(uint32_t);
-    *count += toCount->objectCount * sizeof(const VkObjectEntryTypeNVX);
-    *count += toCount->objectCount * sizeof(const uint32_t);
-    *count += toCount->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-}
-
-void count_VkObjectTableEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableEntryNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkObjectEntryTypeNVX);
-    *count += sizeof(VkObjectEntryUsageFlagsNVX);
-}
-
-void count_VkObjectTablePipelineEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTablePipelineEntryNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkObjectEntryTypeNVX);
-    *count += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_92;
-    *count += 1 * 8;
-}
-
-void count_VkObjectTableDescriptorSetEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableDescriptorSetEntryNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkObjectEntryTypeNVX);
-    *count += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_93;
-    *count += 1 * 8;
-    uint64_t cgen_var_94;
-    *count += 1 * 8;
-}
-
-void count_VkObjectTableVertexBufferEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableVertexBufferEntryNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkObjectEntryTypeNVX);
-    *count += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_95;
-    *count += 1 * 8;
-}
-
-void count_VkObjectTableIndexBufferEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableIndexBufferEntryNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkObjectEntryTypeNVX);
-    *count += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_96;
-    *count += 1 * 8;
-    *count += sizeof(VkIndexType);
-}
-
-void count_VkObjectTablePushConstantEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTablePushConstantEntryNVX* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkObjectEntryTypeNVX);
-    *count += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_97;
-    *count += 1 * 8;
-    *count += sizeof(VkShaderStageFlags);
-}
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void count_VkViewportWScalingNV(
     uint32_t featureBits,
@@ -5169,9 +6798,12 @@
     *count += 8;
     if (toCount->pViewportWScalings)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkViewportWScalingNV(featureBits, (const VkViewportWScalingNV*)(toCount->pViewportWScalings + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i)
+            {
+                count_VkViewportWScalingNV(featureBits, (const VkViewportWScalingNV*)(toCount->pViewportWScalings + i), count);
+            }
         }
     }
 }
@@ -5314,9 +6946,12 @@
     *count += 8;
     if (toCount->pTimes)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->swapchainCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkPresentTimeGOOGLE(featureBits, (const VkPresentTimeGOOGLE*)(toCount->pTimes + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->swapchainCount; ++i)
+            {
+                count_VkPresentTimeGOOGLE(featureBits, (const VkPresentTimeGOOGLE*)(toCount->pTimes + i), count);
+            }
         }
     }
 }
@@ -5374,9 +7009,12 @@
     *count += 8;
     if (toCount->pViewportSwizzles)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkViewportSwizzleNV(featureBits, (const VkViewportSwizzleNV*)(toCount->pViewportSwizzles + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i)
+            {
+                count_VkViewportSwizzleNV(featureBits, (const VkViewportSwizzleNV*)(toCount->pViewportSwizzles + i), count);
+            }
         }
     }
 }
@@ -5413,9 +7051,12 @@
     *count += 8;
     if (toCount->pDiscardRectangles)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->discardRectangleCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pDiscardRectangles + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->discardRectangleCount; ++i)
+            {
+                count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pDiscardRectangles + i), count);
+            }
         }
     }
 }
@@ -5459,6 +7100,35 @@
 }
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -5537,11 +7207,27 @@
 }
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
+void count_VkDebugUtilsLabelEXT(
+    uint32_t featureBits,
+    const VkDebugUtilsLabelEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t) + (toCount->pLabelName ? strlen(toCount->pLabelName) : 0);
+    *count += 4 * sizeof(float);
+}
+
 void count_VkDebugUtilsObjectNameInfoEXT(
     uint32_t featureBits,
     const VkDebugUtilsObjectNameInfoEXT* toCount,
@@ -5569,37 +7255,6 @@
     }
 }
 
-void count_VkDebugUtilsObjectTagInfoEXT(
-    uint32_t featureBits,
-    const VkDebugUtilsObjectTagInfoEXT* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkObjectType);
-    *count += sizeof(uint64_t);
-    *count += sizeof(uint64_t);
-    *count += 8;
-    *count += toCount->tagSize * sizeof(const uint8_t);
-}
-
-void count_VkDebugUtilsLabelEXT(
-    uint32_t featureBits,
-    const VkDebugUtilsLabelEXT* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(uint32_t) + (toCount->pLabelName ? strlen(toCount->pLabelName) : 0);
-    *count += 4 * sizeof(float);
-}
-
 void count_VkDebugUtilsMessengerCallbackDataEXT(
     uint32_t featureBits,
     const VkDebugUtilsMessengerCallbackDataEXT* toCount,
@@ -5631,9 +7286,12 @@
     *count += 8;
     if (toCount->pQueueLabels)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->queueLabelCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkDebugUtilsLabelEXT(featureBits, (VkDebugUtilsLabelEXT*)(toCount->pQueueLabels + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->queueLabelCount; ++i)
+            {
+                count_VkDebugUtilsLabelEXT(featureBits, (VkDebugUtilsLabelEXT*)(toCount->pQueueLabels + i), count);
+            }
         }
     }
     *count += sizeof(uint32_t);
@@ -5641,9 +7299,12 @@
     *count += 8;
     if (toCount->pCmdBufLabels)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->cmdBufLabelCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkDebugUtilsLabelEXT(featureBits, (VkDebugUtilsLabelEXT*)(toCount->pCmdBufLabels + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->cmdBufLabelCount; ++i)
+            {
+                count_VkDebugUtilsLabelEXT(featureBits, (VkDebugUtilsLabelEXT*)(toCount->pCmdBufLabels + i), count);
+            }
         }
     }
     *count += sizeof(uint32_t);
@@ -5651,9 +7312,12 @@
     *count += 8;
     if (toCount->pObjects)
     {
-        for (uint32_t i = 0; i < (uint32_t)toCount->objectCount; ++i)
+        if ((toCount) != nullptr)
         {
-            count_VkDebugUtilsObjectNameInfoEXT(featureBits, (VkDebugUtilsObjectNameInfoEXT*)(toCount->pObjects + i), count);
+            for (uint32_t i = 0; i < (uint32_t)toCount->objectCount; ++i)
+            {
+                count_VkDebugUtilsObjectNameInfoEXT(featureBits, (VkDebugUtilsObjectNameInfoEXT*)(toCount->pObjects + i), count);
+            }
         }
     }
 }
@@ -5680,6 +7344,26 @@
     }
 }
 
+void count_VkDebugUtilsObjectTagInfoEXT(
+    uint32_t featureBits,
+    const VkDebugUtilsObjectTagInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkObjectType);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint64_t);
+    *count += 8;
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->tagSize * sizeof(const uint8_t);
+    }
+}
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void count_VkAndroidHardwareBufferUsageANDROID(
@@ -5752,7 +7436,7 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_98;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
@@ -5771,33 +7455,6 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void count_VkSamplerReductionModeCreateInfoEXT(
-    uint32_t featureBits,
-    const VkSamplerReductionModeCreateInfoEXT* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkSamplerReductionModeEXT);
-}
-
-void count_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    uint32_t featureBits,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toCount,
-    size_t* count)
-{
-    (void)featureBits;
-    (void)toCount;
-    (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-}
-
 #endif
 #ifdef VK_AMD_gpu_shader_int16
 #endif
@@ -5805,6 +7462,69 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void count_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkWriteDescriptorSetInlineUniformBlockEXT(
+    uint32_t featureBits,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->dataSize * sizeof(const uint8_t);
+    }
+}
+
+void count_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -5833,9 +7553,12 @@
     *count += sizeof(VkSampleCountFlagBits);
     count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->sampleLocationGridSize), count);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->sampleLocationsCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkSampleLocationEXT(featureBits, (const VkSampleLocationEXT*)(toCount->pSampleLocations + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->sampleLocationsCount; ++i)
+        {
+            count_VkSampleLocationEXT(featureBits, (const VkSampleLocationEXT*)(toCount->pSampleLocations + i), count);
+        }
     }
 }
 
@@ -5874,14 +7597,20 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->attachmentInitialSampleLocationsCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkAttachmentSampleLocationsEXT(featureBits, (const VkAttachmentSampleLocationsEXT*)(toCount->pAttachmentInitialSampleLocations + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->attachmentInitialSampleLocationsCount; ++i)
+        {
+            count_VkAttachmentSampleLocationsEXT(featureBits, (const VkAttachmentSampleLocationsEXT*)(toCount->pAttachmentInitialSampleLocations + i), count);
+        }
     }
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->postSubpassSampleLocationsCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkSubpassSampleLocationsEXT(featureBits, (const VkSubpassSampleLocationsEXT*)(toCount->pPostSubpassSampleLocations + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->postSubpassSampleLocationsCount; ++i)
+        {
+            count_VkSubpassSampleLocationsEXT(featureBits, (const VkSubpassSampleLocationsEXT*)(toCount->pPostSubpassSampleLocations + i), count);
+        }
     }
 }
 
@@ -6014,15 +7743,162 @@
     *count += 8;
     if (toCount->pCoverageModulationTable)
     {
-        *count += toCount->coverageModulationTableCount * sizeof(const float);
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->coverageModulationTableCount * sizeof(const float);
+        }
     }
 }
 
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void count_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void count_VkDrmFormatModifierPropertiesEXT(
+    uint32_t featureBits,
+    const VkDrmFormatModifierPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkFormatFeatureFlags);
+}
+
+void count_VkDrmFormatModifierPropertiesListEXT(
+    uint32_t featureBits,
+    const VkDrmFormatModifierPropertiesListEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pDrmFormatModifierProperties)
+    {
+        if ((toCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierCount; ++i)
+            {
+                count_VkDrmFormatModifierPropertiesEXT(featureBits, (VkDrmFormatModifierPropertiesEXT*)(toCount->pDrmFormatModifierProperties + i), count);
+            }
+        }
+    }
+}
+
+void count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+    *count += sizeof(VkSharingMode);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pQueueFamilyIndices)
+    {
+        if ((toCount) != nullptr)
+        {
+            *count += toCount->queueFamilyIndexCount * sizeof(const uint32_t);
+        }
+    }
+}
+
+void count_VkImageDrmFormatModifierListCreateInfoEXT(
+    uint32_t featureBits,
+    const VkImageDrmFormatModifierListCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->drmFormatModifierCount * sizeof(const uint64_t);
+    }
+}
+
+void count_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    uint32_t featureBits,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->drmFormatModifierPlaneCount; ++i)
+        {
+            count_VkSubresourceLayout(featureBits, (const VkSubresourceLayout*)(toCount->pPlaneLayouts + i), count);
+        }
+    }
+}
+
+void count_VkImageDrmFormatModifierPropertiesEXT(
+    uint32_t featureBits,
+    const VkImageDrmFormatModifierPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+}
+
+#endif
 #ifdef VK_EXT_validation_cache
 void count_VkValidationCacheCreateInfoEXT(
     uint32_t featureBits,
@@ -6036,7 +7912,10 @@
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkValidationCacheCreateFlagsEXT);
     *count += 8;
-    *count += toCount->initialDataSize * sizeof(const uint8_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->initialDataSize * sizeof(const uint8_t);
+    }
 }
 
 void count_VkShaderModuleValidationCacheCreateInfoEXT(
@@ -6049,29 +7928,34 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    uint64_t cgen_var_99;
+    uint64_t cgen_var_0;
     *count += 1 * 8;
 }
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void count_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+#endif
+#ifdef VK_EXT_shader_viewport_index_layer
+#endif
+#ifdef VK_NV_shading_rate_image
+void count_VkShadingRatePaletteNV(
     uint32_t featureBits,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toCount,
+    const VkShadingRatePaletteNV* toCount,
     size_t* count)
 {
     (void)featureBits;
     (void)toCount;
     (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    *count += toCount->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV);
+    }
 }
 
-void count_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void count_VkPipelineViewportShadingRateImageStateCreateInfoNV(
     uint32_t featureBits,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toCount,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -6080,30 +7964,38 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pShadingRatePalettes)
+    {
+        if ((toCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toCount->viewportCount; ++i)
+            {
+                count_VkShadingRatePaletteNV(featureBits, (const VkShadingRatePaletteNV*)(toCount->pShadingRatePalettes + i), count);
+            }
+        }
+    }
+}
+
+void count_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(VkBool32);
     *count += sizeof(VkBool32);
 }
 
-void count_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void count_VkPhysicalDeviceShadingRateImagePropertiesNV(
     uint32_t featureBits,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toCount,
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -6111,48 +8003,47 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
-    *count += sizeof(uint32_t);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
-    *count += sizeof(VkBool32);
+    count_VkExtent2D(featureBits, (VkExtent2D*)(&toCount->shadingRateTexelSize), count);
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
-    *count += sizeof(uint32_t);
+}
+
+void count_VkCoarseSampleLocationNV(
+    uint32_t featureBits,
+    const VkCoarseSampleLocationNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
     *count += sizeof(uint32_t);
 }
 
-void count_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void count_VkCoarseSampleOrderCustomNV(
     uint32_t featureBits,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toCount,
+    const VkCoarseSampleOrderCustomNV* toCount,
     size_t* count)
 {
     (void)featureBits;
     (void)toCount;
     (void)count;
-    *count += sizeof(VkStructureType);
-    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkShadingRatePaletteEntryNV);
     *count += sizeof(uint32_t);
-    *count += toCount->descriptorSetCount * sizeof(const uint32_t);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->sampleLocationCount; ++i)
+        {
+            count_VkCoarseSampleLocationNV(featureBits, (const VkCoarseSampleLocationNV*)(toCount->pSampleLocations + i), count);
+        }
+    }
 }
 
-void count_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void count_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
     uint32_t featureBits,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toCount,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toCount,
     size_t* count)
 {
     (void)featureBits;
@@ -6160,11 +8051,359 @@
     (void)count;
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkCoarseSampleOrderTypeNV);
     *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->customSampleOrderCount; ++i)
+        {
+            count_VkCoarseSampleOrderCustomNV(featureBits, (const VkCoarseSampleOrderCustomNV*)(toCount->pCustomSampleOrders + i), count);
+        }
+    }
 }
 
 #endif
-#ifdef VK_EXT_shader_viewport_index_layer
+#ifdef VK_NV_ray_tracing
+void count_VkRayTracingShaderGroupCreateInfoNV(
+    uint32_t featureBits,
+    const VkRayTracingShaderGroupCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkRayTracingShaderGroupTypeKHR);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkRayTracingPipelineCreateInfoNV(
+    uint32_t featureBits,
+    const VkRayTracingPipelineCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineCreateFlags);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->stageCount; ++i)
+        {
+            count_VkPipelineShaderStageCreateInfo(featureBits, (const VkPipelineShaderStageCreateInfo*)(toCount->pStages + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->groupCount; ++i)
+        {
+            count_VkRayTracingShaderGroupCreateInfoNV(featureBits, (const VkRayTracingShaderGroupCreateInfoNV*)(toCount->pGroups + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(int32_t);
+}
+
+void count_VkGeometryTrianglesNV(
+    uint32_t featureBits,
+    const VkGeometryTrianglesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkFormat);
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkIndexType);
+    uint64_t cgen_var_2;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkGeometryAABBNV(
+    uint32_t featureBits,
+    const VkGeometryAABBNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkGeometryDataNV(
+    uint32_t featureBits,
+    const VkGeometryDataNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkGeometryTrianglesNV(featureBits, (VkGeometryTrianglesNV*)(&toCount->triangles), count);
+    count_VkGeometryAABBNV(featureBits, (VkGeometryAABBNV*)(&toCount->aabbs), count);
+}
+
+void count_VkGeometryNV(
+    uint32_t featureBits,
+    const VkGeometryNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkGeometryTypeKHR);
+    count_VkGeometryDataNV(featureBits, (VkGeometryDataNV*)(&toCount->geometry), count);
+    *count += sizeof(VkGeometryFlagsKHR);
+}
+
+void count_VkAccelerationStructureInfoNV(
+    uint32_t featureBits,
+    const VkAccelerationStructureInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAccelerationStructureTypeNV);
+    *count += sizeof(VkBuildAccelerationStructureFlagsNV);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->geometryCount; ++i)
+        {
+            count_VkGeometryNV(featureBits, (const VkGeometryNV*)(toCount->pGeometries + i), count);
+        }
+    }
+}
+
+void count_VkAccelerationStructureCreateInfoNV(
+    uint32_t featureBits,
+    const VkAccelerationStructureCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceSize);
+    count_VkAccelerationStructureInfoNV(featureBits, (VkAccelerationStructureInfoNV*)(&toCount->info), count);
+}
+
+void count_VkBindAccelerationStructureMemoryInfoNV(
+    uint32_t featureBits,
+    const VkBindAccelerationStructureMemoryInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->deviceIndexCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkWriteDescriptorSetAccelerationStructureNV(
+    uint32_t featureBits,
+    const VkWriteDescriptorSetAccelerationStructureNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pAccelerationStructures)
+    {
+        if (toCount->accelerationStructureCount)
+        {
+            *count += toCount->accelerationStructureCount * 8;
+        }
+    }
+}
+
+void count_VkAccelerationStructureMemoryRequirementsInfoNV(
+    uint32_t featureBits,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAccelerationStructureMemoryRequirementsTypeNV);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+}
+
+void count_VkPhysicalDeviceRayTracingPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayTracingPropertiesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkTransformMatrixKHR(
+    uint32_t featureBits,
+    const VkTransformMatrixKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += ((3)*(4)) * sizeof(float);
+}
+
+void count_VkAabbPositionsKHR(
+    uint32_t featureBits,
+    const VkAabbPositionsKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+    *count += sizeof(float);
+}
+
+void count_VkAccelerationStructureInstanceKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureInstanceKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkTransformMatrixKHR(featureBits, (VkTransformMatrixKHR*)(&toCount->transform), count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkGeometryInstanceFlagsKHR);
+    *count += sizeof(uint64_t);
+}
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void count_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void count_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkImageViewType);
+}
+
+void count_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    uint32_t featureBits,
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
 #endif
 #ifdef VK_EXT_global_priority
 void count_VkDeviceQueueGlobalPriorityCreateInfoEXT(
@@ -6230,6 +8469,36 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void count_VkPipelineCompilerControlCreateInfoAMD(
+    uint32_t featureBits,
+    const VkPipelineCompilerControlCreateInfoAMD* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineCompilerControlFlagsAMD);
+}
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void count_VkCalibratedTimestampInfoEXT(
+    uint32_t featureBits,
+    const VkCalibratedTimestampInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkTimeDomainEXT);
+}
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void count_VkPhysicalDeviceShaderCorePropertiesAMD(
     uint32_t featureBits,
@@ -6258,6 +8527,21 @@
 }
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void count_VkDeviceMemoryOverallocationCreateInfoAMD(
+    uint32_t featureBits,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkMemoryOverallocationBehaviorAMD);
+}
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     uint32_t featureBits,
@@ -6295,15 +8579,221 @@
     *count += sizeof(VkStructureType);
     count_extension_struct(featureBits, toCount->pNext, count);
     *count += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)toCount->vertexBindingDivisorCount; ++i)
+    if ((toCount) != nullptr)
     {
-        count_VkVertexInputBindingDivisorDescriptionEXT(featureBits, (const VkVertexInputBindingDivisorDescriptionEXT*)(toCount->pVertexBindingDivisors + i), count);
+        for (uint32_t i = 0; i < (uint32_t)toCount->vertexBindingDivisorCount; ++i)
+        {
+            count_VkVertexInputBindingDivisorDescriptionEXT(featureBits, (const VkVertexInputBindingDivisorDescriptionEXT*)(toCount->pVertexBindingDivisors + i), count);
+        }
+    }
+}
+
+void count_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_GGP_frame_token
+void count_VkPresentFrameTokenGGP(
+    uint32_t featureBits,
+    const VkPresentFrameTokenGGP* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(GgpFrameToken);
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void count_VkPipelineCreationFeedbackEXT(
+    uint32_t featureBits,
+    const VkPipelineCreationFeedbackEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkPipelineCreationFeedbackFlagsEXT);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkPipelineCreationFeedbackCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineCreationFeedbackCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkPipelineCreationFeedbackEXT(featureBits, (VkPipelineCreationFeedbackEXT*)(toCount->pPipelineCreationFeedback), count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->pipelineStageCreationFeedbackCount; ++i)
+        {
+            count_VkPipelineCreationFeedbackEXT(featureBits, (VkPipelineCreationFeedbackEXT*)(toCount->pPipelineStageCreationFeedbacks + i), count);
+        }
     }
 }
 
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void count_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_mesh_shader
+void count_VkPhysicalDeviceMeshShaderFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceMeshShaderPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += 3 * sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += 3 * sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkDrawMeshTasksIndirectCommandNV(
+    uint32_t featureBits,
+    const VkDrawMeshTasksIndirectCommandNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void count_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void count_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void count_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pExclusiveScissors)
+    {
+        if ((toCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toCount->exclusiveScissorCount; ++i)
+            {
+                count_VkRect2D(featureBits, (const VkRect2D*)(toCount->pExclusiveScissors + i), count);
+            }
+        }
+    }
+}
+
+void count_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void count_VkQueueFamilyCheckpointPropertiesNV(
     uint32_t featureBits,
@@ -6338,7 +8828,213 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void count_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_INTEL_performance_query
+void count_VkPerformanceValueDataINTEL(
+    uint32_t featureBits,
+    const VkPerformanceValueDataINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPerformanceValueINTEL(
+    uint32_t featureBits,
+    const VkPerformanceValueINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkPerformanceValueTypeINTEL);
+    count_VkPerformanceValueDataINTEL(featureBits, (VkPerformanceValueDataINTEL*)(&toCount->data), count);
+}
+
+void count_VkInitializePerformanceApiInfoINTEL(
+    uint32_t featureBits,
+    const VkInitializePerformanceApiInfoINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pUserData)
+    {
+        *count += sizeof(uint8_t);
+    }
+}
+
+void count_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    uint32_t featureBits,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkQueryPoolSamplingModeINTEL);
+}
+
+void count_VkPerformanceMarkerInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceMarkerInfoINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkPerformanceStreamMarkerInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceStreamMarkerInfoINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPerformanceOverrideInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceOverrideInfoINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPerformanceOverrideTypeINTEL);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint64_t);
+}
+
+void count_VkPerformanceConfigurationAcquireInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceConfigurationAcquireInfoINTEL* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPerformanceConfigurationTypeINTEL);
+}
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void count_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void count_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    uint32_t featureBits,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    uint32_t featureBits,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void count_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkImagePipeSurfaceCreateFlagsFUCHSIA);
+    *count += sizeof(zx_handle_t);
+}
+
+#endif
+#ifdef VK_EXT_metal_surface
+void count_VkMetalSurfaceCreateInfoEXT(
+    uint32_t featureBits,
+    const VkMetalSurfaceCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkMetalSurfaceCreateFlagsEXT);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pLayer)
+    {
+        *count += sizeof(const CAMetalLayer);
+    }
+}
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void count_VkImportColorBufferGOOGLE(
@@ -6385,23 +9081,1716 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void count_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkShaderStageFlags);
+}
+
+void count_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void count_VkPhysicalDeviceShaderCoreProperties2AMD(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkShaderCorePropertiesFlagsAMD);
+    *count += sizeof(uint32_t);
+}
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void count_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void count_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void count_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize);
+    *count += VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize);
+}
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void count_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkMemoryPriorityAllocateInfoEXT(
+    uint32_t featureBits,
+    const VkMemoryPriorityAllocateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(float);
+}
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void count_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void count_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkBufferDeviceAddressCreateInfoEXT(
+    uint32_t featureBits,
+    const VkBufferDeviceAddressCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceAddress);
+}
+
+#endif
+#ifdef VK_EXT_tooling_info
+void count_VkPhysicalDeviceToolPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceToolPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
+    *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
+    *count += sizeof(VkToolPurposeFlagsEXT);
+    *count += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    *count += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
+}
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+void count_VkValidationFeaturesEXT(
+    uint32_t featureBits,
+    const VkValidationFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT);
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->disabledValidationFeatureCount * sizeof(const VkValidationFeatureDisableEXT);
+    }
+}
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void count_VkCooperativeMatrixPropertiesNV(
+    uint32_t featureBits,
+    const VkCooperativeMatrixPropertiesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkComponentTypeNV);
+    *count += sizeof(VkComponentTypeNV);
+    *count += sizeof(VkComponentTypeNV);
+    *count += sizeof(VkComponentTypeNV);
+    *count += sizeof(VkScopeNV);
+}
+
+void count_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkShaderStageFlags);
+}
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void count_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPipelineCoverageReductionStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineCoverageReductionStateCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineCoverageReductionStateCreateFlagsNV);
+    *count += sizeof(VkCoverageReductionModeNV);
+}
+
+void count_VkFramebufferMixedSamplesCombinationNV(
+    uint32_t featureBits,
+    const VkFramebufferMixedSamplesCombinationNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkCoverageReductionModeNV);
+    *count += sizeof(VkSampleCountFlagBits);
+    *count += sizeof(VkSampleCountFlags);
+    *count += sizeof(VkSampleCountFlags);
+}
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void count_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void count_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void count_VkSurfaceFullScreenExclusiveInfoEXT(
+    uint32_t featureBits,
+    const VkSurfaceFullScreenExclusiveInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkFullScreenExclusiveEXT);
+}
+
+void count_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    uint32_t featureBits,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    uint32_t featureBits,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(HMONITOR);
+}
+
+#endif
+#ifdef VK_EXT_headless_surface
+void count_VkHeadlessSurfaceCreateInfoEXT(
+    uint32_t featureBits,
+    const VkHeadlessSurfaceCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkHeadlessSurfaceCreateFlagsEXT);
+}
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void count_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPipelineRasterizationLineStateCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkLineRasterizationModeEXT);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint16_t);
+}
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void count_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+void count_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void count_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkGraphicsShaderGroupCreateInfoNV(
+    uint32_t featureBits,
+    const VkGraphicsShaderGroupCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->stageCount; ++i)
+        {
+            count_VkPipelineShaderStageCreateInfo(featureBits, (const VkPipelineShaderStageCreateInfo*)(toCount->pStages + i), count);
+        }
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pVertexInputState)
+    {
+        count_VkPipelineVertexInputStateCreateInfo(featureBits, (const VkPipelineVertexInputStateCreateInfo*)(toCount->pVertexInputState), count);
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pTessellationState)
+    {
+        count_VkPipelineTessellationStateCreateInfo(featureBits, (const VkPipelineTessellationStateCreateInfo*)(toCount->pTessellationState), count);
+    }
+}
+
+void count_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    uint32_t featureBits,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->groupCount; ++i)
+        {
+            count_VkGraphicsShaderGroupCreateInfoNV(featureBits, (const VkGraphicsShaderGroupCreateInfoNV*)(toCount->pGroups + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if (toCount->pipelineCount)
+    {
+        *count += toCount->pipelineCount * 8;
+    }
+}
+
+void count_VkBindShaderGroupIndirectCommandNV(
+    uint32_t featureBits,
+    const VkBindShaderGroupIndirectCommandNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkBindIndexBufferIndirectCommandNV(
+    uint32_t featureBits,
+    const VkBindIndexBufferIndirectCommandNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDeviceAddress);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkIndexType);
+}
+
+void count_VkBindVertexBufferIndirectCommandNV(
+    uint32_t featureBits,
+    const VkBindVertexBufferIndirectCommandNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDeviceAddress);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkSetStateFlagsIndirectCommandNV(
+    uint32_t featureBits,
+    const VkSetStateFlagsIndirectCommandNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+}
+
+void count_VkIndirectCommandsStreamNV(
+    uint32_t featureBits,
+    const VkIndirectCommandsStreamNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkIndirectCommandsLayoutTokenNV(
+    uint32_t featureBits,
+    const VkIndirectCommandsLayoutTokenNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkIndirectCommandsTokenTypeNV);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkBool32);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkShaderStageFlags);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkIndirectStateFlagsNV);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->indexTypeCount * sizeof(const VkIndexType);
+    }
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->indexTypeCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkIndirectCommandsLayoutCreateInfoNV(
+    uint32_t featureBits,
+    const VkIndirectCommandsLayoutCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkIndirectCommandsLayoutUsageFlagsNV);
+    *count += sizeof(VkPipelineBindPoint);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->tokenCount; ++i)
+        {
+            count_VkIndirectCommandsLayoutTokenNV(featureBits, (const VkIndirectCommandsLayoutTokenNV*)(toCount->pTokens + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        *count += toCount->streamCount * sizeof(const uint32_t);
+    }
+}
+
+void count_VkGeneratedCommandsInfoNV(
+    uint32_t featureBits,
+    const VkGeneratedCommandsInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineBindPoint);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->streamCount; ++i)
+        {
+            count_VkIndirectCommandsStreamNV(featureBits, (const VkIndirectCommandsStreamNV*)(toCount->pStreams + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    uint64_t cgen_var_2;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    uint64_t cgen_var_3;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    uint64_t cgen_var_4;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    uint32_t featureBits,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineBindPoint);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void count_VkRenderPassTransformBeginInfoQCOM(
+    uint32_t featureBits,
+    const VkRenderPassTransformBeginInfoQCOM* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSurfaceTransformFlagBitsKHR);
+}
+
+void count_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    uint32_t featureBits,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSurfaceTransformFlagBitsKHR);
+    count_VkRect2D(featureBits, (VkRect2D*)(&toCount->renderArea), count);
+}
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkDeviceMemoryReportCallbackDataEXT(
+    uint32_t featureBits,
+    const VkDeviceMemoryReportCallbackDataEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceMemoryReportFlagsEXT);
+    *count += sizeof(VkDeviceMemoryReportEventTypeEXT);
+    *count += sizeof(uint64_t);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkObjectType);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceMemoryReportFlagsEXT);
+    *count += 8;
+    *count += sizeof(uint8_t);
+}
+
+#endif
+#ifdef VK_EXT_robustness2
+void count_VkPhysicalDeviceRobustness2FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceRobustness2PropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void count_VkSamplerCustomBorderColorCreateInfoEXT(
+    uint32_t featureBits,
+    const VkSamplerCustomBorderColorCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkClearColorValue(featureBits, (VkClearColorValue*)(&toCount->customBorderColor), count);
+    *count += sizeof(VkFormat);
+}
+
+void count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void count_VkPhysicalDevicePrivateDataFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkDevicePrivateDataCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDevicePrivateDataCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkPrivateDataSlotCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPrivateDataSlotCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPrivateDataSlotCreateFlagsEXT);
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void count_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void count_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkDeviceDiagnosticsConfigCreateInfoNV(
+    uint32_t featureBits,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceDiagnosticsConfigFlagsNV);
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void count_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSampleCountFlagBits);
+}
+
+void count_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkFragmentShadingRateTypeNV);
+    *count += sizeof(VkFragmentShadingRateNV);
+    *count += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+}
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void count_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void count_VkCopyCommandTransformInfoQCOM(
+    uint32_t featureBits,
+    const VkCopyCommandTransformInfoQCOM* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkSurfaceTransformFlagBitsKHR);
+}
+
+#endif
+#ifdef VK_EXT_image_robustness
+void count_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_4444_formats
+void count_VkPhysicalDevice4444FormatsFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void count_VkDirectFBSurfaceCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDirectFBSurfaceCreateInfoEXT* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDirectFBSurfaceCreateFlagsEXT);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->dfb)
+    {
+        *count += sizeof(IDirectFB);
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->surface)
+    {
+        *count += sizeof(IDirectFBSurface);
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void count_VkDeviceOrHostAddressKHR(
+    uint32_t featureBits,
+    const VkDeviceOrHostAddressKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDeviceAddress);
+}
+
+void count_VkDeviceOrHostAddressConstKHR(
+    uint32_t featureBits,
+    const VkDeviceOrHostAddressConstKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDeviceAddress);
+}
+
+void count_VkAccelerationStructureBuildRangeInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureBuildRangeInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkAccelerationStructureGeometryTrianglesDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkFormat);
+    count_VkDeviceOrHostAddressConstKHR(featureBits, (VkDeviceOrHostAddressConstKHR*)(&toCount->vertexData), count);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(uint32_t);
+    *count += sizeof(VkIndexType);
+    count_VkDeviceOrHostAddressConstKHR(featureBits, (VkDeviceOrHostAddressConstKHR*)(&toCount->indexData), count);
+    count_VkDeviceOrHostAddressConstKHR(featureBits, (VkDeviceOrHostAddressConstKHR*)(&toCount->transformData), count);
+}
+
+void count_VkAccelerationStructureGeometryAabbsDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryAabbsDataKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkDeviceOrHostAddressConstKHR(featureBits, (VkDeviceOrHostAddressConstKHR*)(&toCount->data), count);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkAccelerationStructureGeometryInstancesDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryInstancesDataKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    count_VkDeviceOrHostAddressConstKHR(featureBits, (VkDeviceOrHostAddressConstKHR*)(&toCount->data), count);
+}
+
+void count_VkAccelerationStructureGeometryDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryDataKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    count_VkAccelerationStructureGeometryTrianglesDataKHR(featureBits, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&toCount->triangles), count);
+}
+
+void count_VkAccelerationStructureGeometryKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkGeometryTypeKHR);
+    count_VkAccelerationStructureGeometryDataKHR(featureBits, (VkAccelerationStructureGeometryDataKHR*)(&toCount->geometry), count);
+    *count += sizeof(VkGeometryFlagsKHR);
+}
+
+void count_VkAccelerationStructureBuildGeometryInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureBuildGeometryInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAccelerationStructureTypeKHR);
+    *count += sizeof(VkBuildAccelerationStructureFlagsKHR);
+    *count += sizeof(VkBuildAccelerationStructureModeKHR);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pGeometries)
+    {
+        if ((toCount) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toCount->geometryCount; ++i)
+            {
+                count_VkAccelerationStructureGeometryKHR(featureBits, (const VkAccelerationStructureGeometryKHR*)(toCount->pGeometries + i), count);
+            }
+        }
+    }
+    count_VkDeviceOrHostAddressKHR(featureBits, (VkDeviceOrHostAddressKHR*)(&toCount->scratchData), count);
+}
+
+void count_VkAccelerationStructureCreateInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkAccelerationStructureCreateFlagsKHR);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkAccelerationStructureTypeKHR);
+    *count += sizeof(VkDeviceAddress);
+}
+
+void count_VkWriteDescriptorSetAccelerationStructureKHR(
+    uint32_t featureBits,
+    const VkWriteDescriptorSetAccelerationStructureKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pAccelerationStructures)
+    {
+        if (toCount->accelerationStructureCount)
+        {
+            *count += toCount->accelerationStructureCount * 8;
+        }
+    }
+}
+
+void count_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint64_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkAccelerationStructureDeviceAddressInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureDeviceAddressInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+}
+
+void count_VkAccelerationStructureVersionInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureVersionInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    if ((toCount) != nullptr)
+    {
+        *count += 2*VK_UUID_SIZE * sizeof(const uint8_t);
+    }
+}
+
+void count_VkCopyAccelerationStructureToMemoryInfoKHR(
+    uint32_t featureBits,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    count_VkDeviceOrHostAddressKHR(featureBits, (VkDeviceOrHostAddressKHR*)(&toCount->dst), count);
+    *count += sizeof(VkCopyAccelerationStructureModeKHR);
+}
+
+void count_VkCopyMemoryToAccelerationStructureInfoKHR(
+    uint32_t featureBits,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    count_VkDeviceOrHostAddressConstKHR(featureBits, (VkDeviceOrHostAddressConstKHR*)(&toCount->src), count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    *count += sizeof(VkCopyAccelerationStructureModeKHR);
+}
+
+void count_VkCopyAccelerationStructureInfoKHR(
+    uint32_t featureBits,
+    const VkCopyAccelerationStructureInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(VkCopyAccelerationStructureModeKHR);
+}
+
+void count_VkAccelerationStructureBuildSizesInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureBuildSizesInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void count_VkRayTracingShaderGroupCreateInfoKHR(
+    uint32_t featureBits,
+    const VkRayTracingShaderGroupCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkRayTracingShaderGroupTypeKHR);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pShaderGroupCaptureReplayHandle)
+    {
+        *count += sizeof(const uint8_t);
+    }
+}
+
+void count_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    uint32_t featureBits,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkRayTracingPipelineCreateInfoKHR(
+    uint32_t featureBits,
+    const VkRayTracingPipelineCreateInfoKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkPipelineCreateFlags);
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->stageCount; ++i)
+        {
+            count_VkPipelineShaderStageCreateInfo(featureBits, (const VkPipelineShaderStageCreateInfo*)(toCount->pStages + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    if ((toCount) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)toCount->groupCount; ++i)
+        {
+            count_VkRayTracingShaderGroupCreateInfoKHR(featureBits, (const VkRayTracingShaderGroupCreateInfoKHR*)(toCount->pGroups + i), count);
+        }
+    }
+    *count += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pLibraryInfo)
+    {
+        count_VkPipelineLibraryCreateInfoKHR(featureBits, (const VkPipelineLibraryCreateInfoKHR*)(toCount->pLibraryInfo), count);
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pLibraryInterface)
+    {
+        count_VkRayTracingPipelineInterfaceCreateInfoKHR(featureBits, (const VkRayTracingPipelineInterfaceCreateInfoKHR*)(toCount->pLibraryInterface), count);
+    }
+    // WARNING PTR CHECK
+    *count += 8;
+    if (toCount->pDynamicState)
+    {
+        count_VkPipelineDynamicStateCreateInfo(featureBits, (const VkPipelineDynamicStateCreateInfo*)(toCount->pDynamicState), count);
+    }
+    uint64_t cgen_var_0;
+    *count += 1 * 8;
+    uint64_t cgen_var_1;
+    *count += 1 * 8;
+    *count += sizeof(int32_t);
+}
+
+void count_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+    *count += sizeof(VkBool32);
+}
+
+void count_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+void count_VkStridedDeviceAddressRegionKHR(
+    uint32_t featureBits,
+    const VkStridedDeviceAddressRegionKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkDeviceAddress);
+    *count += sizeof(VkDeviceSize);
+    *count += sizeof(VkDeviceSize);
+}
+
+void count_VkTraceRaysIndirectCommandKHR(
+    uint32_t featureBits,
+    const VkTraceRaysIndirectCommandKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+    *count += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_KHR_ray_query
+void count_VkPhysicalDeviceRayQueryFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* toCount,
+    size_t* count)
+{
+    (void)featureBits;
+    (void)toCount;
+    (void)count;
+    *count += sizeof(VkStructureType);
+    count_extension_struct(featureBits, toCount->pNext, count);
+    *count += sizeof(VkBool32);
+}
+
 #endif
 void count_extension_struct(
     uint32_t featureBits,
@@ -6535,9 +10924,9 @@
             count_VkPhysicalDeviceMultiviewProperties(featureBits, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension), count);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            count_VkPhysicalDeviceVariablePointerFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension), count);
+            count_VkPhysicalDeviceVariablePointersFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension), count);
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -6625,9 +11014,201 @@
             count_VkPhysicalDeviceMaintenance3Properties(featureBits, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension), count);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            count_VkPhysicalDeviceShaderDrawParameterFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension), count);
+            count_VkPhysicalDeviceShaderDrawParametersFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            count_VkPhysicalDeviceVulkan11Features(featureBits, reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            count_VkPhysicalDeviceVulkan11Properties(featureBits, reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            count_VkPhysicalDeviceVulkan12Features(featureBits, reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            count_VkPhysicalDeviceVulkan12Properties(featureBits, reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            count_VkImageFormatListCreateInfo(featureBits, reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            count_VkPhysicalDevice8BitStorageFeatures(featureBits, reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            count_VkPhysicalDeviceDriverProperties(featureBits, reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            count_VkPhysicalDeviceShaderAtomicInt64Features(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            count_VkPhysicalDeviceShaderFloat16Int8Features(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            count_VkPhysicalDeviceFloatControlsProperties(featureBits, reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            count_VkDescriptorSetLayoutBindingFlagsCreateInfo(featureBits, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            count_VkPhysicalDeviceDescriptorIndexingFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            count_VkPhysicalDeviceDescriptorIndexingProperties(featureBits, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            count_VkDescriptorSetVariableDescriptorCountAllocateInfo(featureBits, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            count_VkDescriptorSetVariableDescriptorCountLayoutSupport(featureBits, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            count_VkSubpassDescriptionDepthStencilResolve(featureBits, reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            count_VkPhysicalDeviceDepthStencilResolveProperties(featureBits, reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            count_VkPhysicalDeviceScalarBlockLayoutFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            count_VkImageStencilUsageCreateInfo(featureBits, reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            count_VkSamplerReductionModeCreateInfo(featureBits, reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            count_VkPhysicalDeviceSamplerFilterMinmaxProperties(featureBits, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            count_VkPhysicalDeviceVulkanMemoryModelFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            count_VkPhysicalDeviceImagelessFramebufferFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            count_VkFramebufferAttachmentsCreateInfo(featureBits, reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            count_VkRenderPassAttachmentBeginInfo(featureBits, reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            count_VkAttachmentReferenceStencilLayout(featureBits, reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            count_VkAttachmentDescriptionStencilLayout(featureBits, reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            count_VkPhysicalDeviceHostQueryResetFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            count_VkPhysicalDeviceTimelineSemaphoreFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            count_VkPhysicalDeviceTimelineSemaphoreProperties(featureBits, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            count_VkSemaphoreTypeCreateInfo(featureBits, reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            count_VkTimelineSemaphoreSubmitInfo(featureBits, reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            count_VkPhysicalDeviceBufferDeviceAddressFeatures(featureBits, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            count_VkBufferOpaqueCaptureAddressCreateInfo(featureBits, reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            count_VkMemoryOpaqueCaptureAddressAllocateInfo(featureBits, reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension), count);
             break;
         }
 #endif
@@ -6726,24 +11307,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            count_VkImageFormatListCreateInfoKHR(featureBits, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension), count);
+            count_VkPhysicalDevicePerformanceQueryFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            count_VkPhysicalDevicePerformanceQueryPropertiesKHR(featureBits, reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            count_VkQueryPoolPerformanceCreateInfoKHR(featureBits, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            count_VkPerformanceQuerySubmitInfoKHR(featureBits, reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>(structExtension), count);
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            count_VkPhysicalDevice8BitStorageFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension), count);
+            count_VkPhysicalDevicePortabilitySubsetFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            count_VkPhysicalDevicePortabilitySubsetPropertiesKHR(featureBits, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension), count);
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            count_VkPhysicalDeviceShaderFloat16Int8Features(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension), count);
+            count_VkPhysicalDeviceShaderClockFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            count_VkFragmentShadingRateAttachmentInfoKHR(featureBits, reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            count_VkPipelineFragmentShadingRateStateCreateInfoKHR(featureBits, reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            count_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            count_VkSurfaceProtectedCapabilitiesKHR(featureBits, reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension), count);
             break;
         }
 #endif
@@ -6785,6 +11429,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            count_VkPipelineRasterizationStateStreamCreateInfoEXT(featureBits, reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -6792,6 +11453,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceCornerSampledImageFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -6830,6 +11498,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            count_VkImageViewASTCDecodeModeEXT(featureBits, reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceASTCDecodeFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -6901,6 +11588,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(featureBits, reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -6930,15 +11629,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            count_VkSamplerReductionModeCreateInfoEXT(featureBits, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension), count);
+            count_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension), count);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            count_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension), count);
+            count_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            count_VkWriteDescriptorSetInlineUniformBlockEXT(featureBits, reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            count_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(featureBits, reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension), count);
             break;
         }
 #endif
@@ -6995,6 +11704,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            count_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            count_VkDrmFormatModifierPropertiesListEXT(featureBits, reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            count_VkImageDrmFormatModifierListCreateInfoEXT(featureBits, reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            count_VkImageDrmFormatModifierExplicitCreateInfoEXT(featureBits, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -7002,30 +11745,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            count_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(featureBits, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension), count);
+            count_VkPipelineViewportShadingRateImageStateCreateInfoNV(featureBits, reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension), count);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            count_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension), count);
+            count_VkPhysicalDeviceShadingRateImageFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension), count);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            count_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension), count);
+            count_VkPhysicalDeviceShadingRateImagePropertiesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension), count);
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            count_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(featureBits, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension), count);
+            count_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(featureBits, reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension), count);
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            count_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(featureBits, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension), count);
+            count_VkWriteDescriptorSetAccelerationStructureNV(featureBits, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            count_VkPhysicalDeviceRayTracingPropertiesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            count_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(featureBits, reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            count_VkPhysicalDeviceImageViewImageFormatInfoEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            count_VkFilterCubicImageViewImageFormatPropertiesEXT(featureBits, reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension), count);
             break;
         }
 #endif
@@ -7048,6 +11822,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            count_VkPipelineCompilerControlCreateInfoAMD(featureBits, reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -7055,6 +11836,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            count_VkDeviceMemoryOverallocationCreateInfoAMD(featureBits, reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -7066,6 +11854,70 @@
             count_VkPipelineVertexInputDivisorStateCreateInfoEXT(featureBits, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension), count);
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            count_VkPresentFrameTokenGGP(featureBits, reinterpret_cast<const VkPresentFrameTokenGGP*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            count_VkPipelineCreationFeedbackCreateInfoEXT(featureBits, reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceMeshShaderFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            count_VkPhysicalDeviceMeshShaderPropertiesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceShaderImageFootprintFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            count_VkPipelineViewportExclusiveScissorStateCreateInfoNV(featureBits, reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceExclusiveScissorFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension), count);
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -7074,6 +11926,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            count_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            count_VkQueryPoolPerformanceQueryCreateInfoINTEL(featureBits, reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDevicePCIBusInfoPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            count_VkDisplayNativeHdrSurfaceCapabilitiesAMD(featureBits, reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            count_VkSwapchainDisplayNativeHdrCreateInfoAMD(featureBits, reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension), count);
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -7091,6 +11976,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            count_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(featureBits, reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            count_VkPhysicalDeviceShaderCoreProperties2AMD(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            count_VkPhysicalDeviceCoherentMemoryFeaturesAMD(featureBits, reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceMemoryBudgetPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceMemoryPriorityFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            count_VkMemoryPriorityAllocateInfoEXT(featureBits, reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            count_VkBufferDeviceAddressCreateInfoEXT(featureBits, reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            count_VkValidationFeaturesEXT(featureBits, reinterpret_cast<const VkValidationFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceCooperativeMatrixFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            count_VkPhysicalDeviceCooperativeMatrixPropertiesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceCoverageReductionModeFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            count_VkPipelineCoverageReductionStateCreateInfoNV(featureBits, reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            count_VkSurfaceFullScreenExclusiveInfoEXT(featureBits, reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            count_VkSurfaceCapabilitiesFullScreenExclusiveEXT(featureBits, reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            count_VkSurfaceFullScreenExclusiveWin32InfoEXT(featureBits, reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceLineRasterizationFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceLineRasterizationPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            count_VkPipelineRasterizationLineStateCreateInfoEXT(featureBits, reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            count_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            count_VkGraphicsPipelineShaderGroupsCreateInfoNV(featureBits, reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            count_VkRenderPassTransformBeginInfoQCOM(featureBits, reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            count_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(featureBits, reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            count_VkDeviceDeviceMemoryReportCreateInfoEXT(featureBits, reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceRobustness2FeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceRobustness2PropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            count_VkSamplerCustomBorderColorCreateInfoEXT(featureBits, reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            count_VkPhysicalDevicePrivateDataFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            count_VkDevicePrivateDataCreateInfoEXT(featureBits, reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            count_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            count_VkDeviceDiagnosticsConfigCreateInfoNV(featureBits, reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            count_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            count_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            count_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(featureBits, reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            count_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            count_VkCopyCommandTransformInfoQCOM(featureBits, reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            count_VkPhysicalDeviceImageRobustnessFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            count_VkPhysicalDevice4444FormatsFeaturesEXT(featureBits, reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            count_VkWriteDescriptorSetAccelerationStructureKHR(featureBits, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceAccelerationStructureFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            count_VkPhysicalDeviceAccelerationStructurePropertiesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension), count);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            count_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension), count);
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            count_VkPhysicalDeviceRayQueryFeaturesKHR(featureBits, reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension), count);
+            break;
+        }
+#endif
         default:
         {
             // fatal; the switch is only taken if the extension struct is known
diff --git a/system/vulkan_enc/goldfish_vk_counting_guest.h b/system/vulkan_enc/goldfish_vk_counting_guest.h
index 2e03ad3..f31e021 100644
--- a/system/vulkan_enc/goldfish_vk_counting_guest.h
+++ b/system/vulkan_enc/goldfish_vk_counting_guest.h
@@ -34,29 +34,9 @@
 namespace goldfish_vk {
 
 #ifdef VK_VERSION_1_0
-void count_VkApplicationInfo(
+void count_VkExtent2D(
     uint32_t featureBits,
-    const VkApplicationInfo* toCount,
-    size_t* count);
-
-void count_VkInstanceCreateInfo(
-    uint32_t featureBits,
-    const VkInstanceCreateInfo* toCount,
-    size_t* count);
-
-void count_VkAllocationCallbacks(
-    uint32_t featureBits,
-    const VkAllocationCallbacks* toCount,
-    size_t* count);
-
-void count_VkPhysicalDeviceFeatures(
-    uint32_t featureBits,
-    const VkPhysicalDeviceFeatures* toCount,
-    size_t* count);
-
-void count_VkFormatProperties(
-    uint32_t featureBits,
-    const VkFormatProperties* toCount,
+    const VkExtent2D* toCount,
     size_t* count);
 
 void count_VkExtent3D(
@@ -64,16 +44,116 @@
     const VkExtent3D* toCount,
     size_t* count);
 
+void count_VkOffset2D(
+    uint32_t featureBits,
+    const VkOffset2D* toCount,
+    size_t* count);
+
+void count_VkOffset3D(
+    uint32_t featureBits,
+    const VkOffset3D* toCount,
+    size_t* count);
+
+void count_VkRect2D(
+    uint32_t featureBits,
+    const VkRect2D* toCount,
+    size_t* count);
+
+void count_VkBaseInStructure(
+    uint32_t featureBits,
+    const VkBaseInStructure* toCount,
+    size_t* count);
+
+void count_VkBaseOutStructure(
+    uint32_t featureBits,
+    const VkBaseOutStructure* toCount,
+    size_t* count);
+
+void count_VkBufferMemoryBarrier(
+    uint32_t featureBits,
+    const VkBufferMemoryBarrier* toCount,
+    size_t* count);
+
+void count_VkDispatchIndirectCommand(
+    uint32_t featureBits,
+    const VkDispatchIndirectCommand* toCount,
+    size_t* count);
+
+void count_VkDrawIndexedIndirectCommand(
+    uint32_t featureBits,
+    const VkDrawIndexedIndirectCommand* toCount,
+    size_t* count);
+
+void count_VkDrawIndirectCommand(
+    uint32_t featureBits,
+    const VkDrawIndirectCommand* toCount,
+    size_t* count);
+
+void count_VkImageSubresourceRange(
+    uint32_t featureBits,
+    const VkImageSubresourceRange* toCount,
+    size_t* count);
+
+void count_VkImageMemoryBarrier(
+    uint32_t featureBits,
+    const VkImageMemoryBarrier* toCount,
+    size_t* count);
+
+void count_VkMemoryBarrier(
+    uint32_t featureBits,
+    const VkMemoryBarrier* toCount,
+    size_t* count);
+
+void count_VkAllocationCallbacks(
+    uint32_t featureBits,
+    const VkAllocationCallbacks* toCount,
+    size_t* count);
+
+void count_VkApplicationInfo(
+    uint32_t featureBits,
+    const VkApplicationInfo* toCount,
+    size_t* count);
+
+void count_VkFormatProperties(
+    uint32_t featureBits,
+    const VkFormatProperties* toCount,
+    size_t* count);
+
 void count_VkImageFormatProperties(
     uint32_t featureBits,
     const VkImageFormatProperties* toCount,
     size_t* count);
 
+void count_VkInstanceCreateInfo(
+    uint32_t featureBits,
+    const VkInstanceCreateInfo* toCount,
+    size_t* count);
+
+void count_VkMemoryHeap(
+    uint32_t featureBits,
+    const VkMemoryHeap* toCount,
+    size_t* count);
+
+void count_VkMemoryType(
+    uint32_t featureBits,
+    const VkMemoryType* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFeatures* toCount,
+    size_t* count);
+
 void count_VkPhysicalDeviceLimits(
     uint32_t featureBits,
     const VkPhysicalDeviceLimits* toCount,
     size_t* count);
 
+void count_VkPhysicalDeviceMemoryProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMemoryProperties* toCount,
+    size_t* count);
+
 void count_VkPhysicalDeviceSparseProperties(
     uint32_t featureBits,
     const VkPhysicalDeviceSparseProperties* toCount,
@@ -89,21 +169,6 @@
     const VkQueueFamilyProperties* toCount,
     size_t* count);
 
-void count_VkMemoryType(
-    uint32_t featureBits,
-    const VkMemoryType* toCount,
-    size_t* count);
-
-void count_VkMemoryHeap(
-    uint32_t featureBits,
-    const VkMemoryHeap* toCount,
-    size_t* count);
-
-void count_VkPhysicalDeviceMemoryProperties(
-    uint32_t featureBits,
-    const VkPhysicalDeviceMemoryProperties* toCount,
-    size_t* count);
-
 void count_VkDeviceQueueCreateInfo(
     uint32_t featureBits,
     const VkDeviceQueueCreateInfo* toCount,
@@ -129,31 +194,21 @@
     const VkSubmitInfo* toCount,
     size_t* count);
 
-void count_VkMemoryAllocateInfo(
-    uint32_t featureBits,
-    const VkMemoryAllocateInfo* toCount,
-    size_t* count);
-
 void count_VkMappedMemoryRange(
     uint32_t featureBits,
     const VkMappedMemoryRange* toCount,
     size_t* count);
 
+void count_VkMemoryAllocateInfo(
+    uint32_t featureBits,
+    const VkMemoryAllocateInfo* toCount,
+    size_t* count);
+
 void count_VkMemoryRequirements(
     uint32_t featureBits,
     const VkMemoryRequirements* toCount,
     size_t* count);
 
-void count_VkSparseImageFormatProperties(
-    uint32_t featureBits,
-    const VkSparseImageFormatProperties* toCount,
-    size_t* count);
-
-void count_VkSparseImageMemoryRequirements(
-    uint32_t featureBits,
-    const VkSparseImageMemoryRequirements* toCount,
-    size_t* count);
-
 void count_VkSparseMemoryBind(
     uint32_t featureBits,
     const VkSparseMemoryBind* toCount,
@@ -174,11 +229,6 @@
     const VkImageSubresource* toCount,
     size_t* count);
 
-void count_VkOffset3D(
-    uint32_t featureBits,
-    const VkOffset3D* toCount,
-    size_t* count);
-
 void count_VkSparseImageMemoryBind(
     uint32_t featureBits,
     const VkSparseImageMemoryBind* toCount,
@@ -194,6 +244,16 @@
     const VkBindSparseInfo* toCount,
     size_t* count);
 
+void count_VkSparseImageFormatProperties(
+    uint32_t featureBits,
+    const VkSparseImageFormatProperties* toCount,
+    size_t* count);
+
+void count_VkSparseImageMemoryRequirements(
+    uint32_t featureBits,
+    const VkSparseImageMemoryRequirements* toCount,
+    size_t* count);
+
 void count_VkFenceCreateInfo(
     uint32_t featureBits,
     const VkFenceCreateInfo* toCount,
@@ -239,11 +299,6 @@
     const VkComponentMapping* toCount,
     size_t* count);
 
-void count_VkImageSubresourceRange(
-    uint32_t featureBits,
-    const VkImageSubresourceRange* toCount,
-    size_t* count);
-
 void count_VkImageViewCreateInfo(
     uint32_t featureBits,
     const VkImageViewCreateInfo* toCount,
@@ -274,6 +329,11 @@
     const VkPipelineShaderStageCreateInfo* toCount,
     size_t* count);
 
+void count_VkComputePipelineCreateInfo(
+    uint32_t featureBits,
+    const VkComputePipelineCreateInfo* toCount,
+    size_t* count);
+
 void count_VkVertexInputBindingDescription(
     uint32_t featureBits,
     const VkVertexInputBindingDescription* toCount,
@@ -304,21 +364,6 @@
     const VkViewport* toCount,
     size_t* count);
 
-void count_VkOffset2D(
-    uint32_t featureBits,
-    const VkOffset2D* toCount,
-    size_t* count);
-
-void count_VkExtent2D(
-    uint32_t featureBits,
-    const VkExtent2D* toCount,
-    size_t* count);
-
-void count_VkRect2D(
-    uint32_t featureBits,
-    const VkRect2D* toCount,
-    size_t* count);
-
 void count_VkPipelineViewportStateCreateInfo(
     uint32_t featureBits,
     const VkPipelineViewportStateCreateInfo* toCount,
@@ -364,11 +409,6 @@
     const VkGraphicsPipelineCreateInfo* toCount,
     size_t* count);
 
-void count_VkComputePipelineCreateInfo(
-    uint32_t featureBits,
-    const VkComputePipelineCreateInfo* toCount,
-    size_t* count);
-
 void count_VkPushConstantRange(
     uint32_t featureBits,
     const VkPushConstantRange* toCount,
@@ -384,14 +424,19 @@
     const VkSamplerCreateInfo* toCount,
     size_t* count);
 
-void count_VkDescriptorSetLayoutBinding(
+void count_VkCopyDescriptorSet(
     uint32_t featureBits,
-    const VkDescriptorSetLayoutBinding* toCount,
+    const VkCopyDescriptorSet* toCount,
     size_t* count);
 
-void count_VkDescriptorSetLayoutCreateInfo(
+void count_VkDescriptorBufferInfo(
     uint32_t featureBits,
-    const VkDescriptorSetLayoutCreateInfo* toCount,
+    const VkDescriptorBufferInfo* toCount,
+    size_t* count);
+
+void count_VkDescriptorImageInfo(
+    uint32_t featureBits,
+    const VkDescriptorImageInfo* toCount,
     size_t* count);
 
 void count_VkDescriptorPoolSize(
@@ -409,14 +454,14 @@
     const VkDescriptorSetAllocateInfo* toCount,
     size_t* count);
 
-void count_VkDescriptorImageInfo(
+void count_VkDescriptorSetLayoutBinding(
     uint32_t featureBits,
-    const VkDescriptorImageInfo* toCount,
+    const VkDescriptorSetLayoutBinding* toCount,
     size_t* count);
 
-void count_VkDescriptorBufferInfo(
+void count_VkDescriptorSetLayoutCreateInfo(
     uint32_t featureBits,
-    const VkDescriptorBufferInfo* toCount,
+    const VkDescriptorSetLayoutCreateInfo* toCount,
     size_t* count);
 
 void count_VkWriteDescriptorSet(
@@ -424,16 +469,6 @@
     const VkWriteDescriptorSet* toCount,
     size_t* count);
 
-void count_VkCopyDescriptorSet(
-    uint32_t featureBits,
-    const VkCopyDescriptorSet* toCount,
-    size_t* count);
-
-void count_VkFramebufferCreateInfo(
-    uint32_t featureBits,
-    const VkFramebufferCreateInfo* toCount,
-    size_t* count);
-
 void count_VkAttachmentDescription(
     uint32_t featureBits,
     const VkAttachmentDescription* toCount,
@@ -444,6 +479,11 @@
     const VkAttachmentReference* toCount,
     size_t* count);
 
+void count_VkFramebufferCreateInfo(
+    uint32_t featureBits,
+    const VkFramebufferCreateInfo* toCount,
+    size_t* count);
+
 void count_VkSubpassDescription(
     uint32_t featureBits,
     const VkSubpassDescription* toCount,
@@ -489,16 +529,6 @@
     const VkImageSubresourceLayers* toCount,
     size_t* count);
 
-void count_VkImageCopy(
-    uint32_t featureBits,
-    const VkImageCopy* toCount,
-    size_t* count);
-
-void count_VkImageBlit(
-    uint32_t featureBits,
-    const VkImageBlit* toCount,
-    size_t* count);
-
 void count_VkBufferImageCopy(
     uint32_t featureBits,
     const VkBufferImageCopy* toCount,
@@ -529,56 +559,26 @@
     const VkClearRect* toCount,
     size_t* count);
 
+void count_VkImageBlit(
+    uint32_t featureBits,
+    const VkImageBlit* toCount,
+    size_t* count);
+
+void count_VkImageCopy(
+    uint32_t featureBits,
+    const VkImageCopy* toCount,
+    size_t* count);
+
 void count_VkImageResolve(
     uint32_t featureBits,
     const VkImageResolve* toCount,
     size_t* count);
 
-void count_VkMemoryBarrier(
-    uint32_t featureBits,
-    const VkMemoryBarrier* toCount,
-    size_t* count);
-
-void count_VkBufferMemoryBarrier(
-    uint32_t featureBits,
-    const VkBufferMemoryBarrier* toCount,
-    size_t* count);
-
-void count_VkImageMemoryBarrier(
-    uint32_t featureBits,
-    const VkImageMemoryBarrier* toCount,
-    size_t* count);
-
 void count_VkRenderPassBeginInfo(
     uint32_t featureBits,
     const VkRenderPassBeginInfo* toCount,
     size_t* count);
 
-void count_VkDispatchIndirectCommand(
-    uint32_t featureBits,
-    const VkDispatchIndirectCommand* toCount,
-    size_t* count);
-
-void count_VkDrawIndexedIndirectCommand(
-    uint32_t featureBits,
-    const VkDrawIndexedIndirectCommand* toCount,
-    size_t* count);
-
-void count_VkDrawIndirectCommand(
-    uint32_t featureBits,
-    const VkDrawIndirectCommand* toCount,
-    size_t* count);
-
-void count_VkBaseOutStructure(
-    uint32_t featureBits,
-    const VkBaseOutStructure* toCount,
-    size_t* count);
-
-void count_VkBaseInStructure(
-    uint32_t featureBits,
-    const VkBaseInStructure* toCount,
-    size_t* count);
-
 #endif
 #ifdef VK_VERSION_1_1
 void count_VkPhysicalDeviceSubgroupProperties(
@@ -766,11 +766,13 @@
     const VkPhysicalDeviceMultiviewProperties* toCount,
     size_t* count);
 
-void count_VkPhysicalDeviceVariablePointerFeatures(
+void count_VkPhysicalDeviceVariablePointersFeatures(
     uint32_t featureBits,
-    const VkPhysicalDeviceVariablePointerFeatures* toCount,
+    const VkPhysicalDeviceVariablePointersFeatures* toCount,
     size_t* count);
 
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceVariablePointersFeatures, count_VkPhysicalDeviceVariablePointerFeatures);
+
 void count_VkPhysicalDeviceProtectedMemoryFeatures(
     uint32_t featureBits,
     const VkPhysicalDeviceProtectedMemoryFeatures* toCount,
@@ -916,9 +918,268 @@
     const VkDescriptorSetLayoutSupport* toCount,
     size_t* count);
 
-void count_VkPhysicalDeviceShaderDrawParameterFeatures(
+void count_VkPhysicalDeviceShaderDrawParametersFeatures(
     uint32_t featureBits,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* toCount,
+    const VkPhysicalDeviceShaderDrawParametersFeatures* toCount,
+    size_t* count);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceShaderDrawParametersFeatures, count_VkPhysicalDeviceShaderDrawParameterFeatures);
+
+#endif
+#ifdef VK_VERSION_1_2
+void count_VkPhysicalDeviceVulkan11Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan11Features* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceVulkan11Properties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan11Properties* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceVulkan12Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan12Features* toCount,
+    size_t* count);
+
+void count_VkConformanceVersion(
+    uint32_t featureBits,
+    const VkConformanceVersion* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceVulkan12Properties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkan12Properties* toCount,
+    size_t* count);
+
+void count_VkImageFormatListCreateInfo(
+    uint32_t featureBits,
+    const VkImageFormatListCreateInfo* toCount,
+    size_t* count);
+
+void count_VkAttachmentDescription2(
+    uint32_t featureBits,
+    const VkAttachmentDescription2* toCount,
+    size_t* count);
+
+void count_VkAttachmentReference2(
+    uint32_t featureBits,
+    const VkAttachmentReference2* toCount,
+    size_t* count);
+
+void count_VkSubpassDescription2(
+    uint32_t featureBits,
+    const VkSubpassDescription2* toCount,
+    size_t* count);
+
+void count_VkSubpassDependency2(
+    uint32_t featureBits,
+    const VkSubpassDependency2* toCount,
+    size_t* count);
+
+void count_VkRenderPassCreateInfo2(
+    uint32_t featureBits,
+    const VkRenderPassCreateInfo2* toCount,
+    size_t* count);
+
+void count_VkSubpassBeginInfo(
+    uint32_t featureBits,
+    const VkSubpassBeginInfo* toCount,
+    size_t* count);
+
+void count_VkSubpassEndInfo(
+    uint32_t featureBits,
+    const VkSubpassEndInfo* toCount,
+    size_t* count);
+
+void count_VkPhysicalDevice8BitStorageFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDevice8BitStorageFeatures* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceDriverProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDriverProperties* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceShaderAtomicInt64Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderAtomicInt64Features* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceShaderFloat16Int8Features(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderFloat16Int8Features* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceFloatControlsProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFloatControlsProperties* toCount,
+    size_t* count);
+
+void count_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    uint32_t featureBits,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceDescriptorIndexingFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceDescriptorIndexingProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDescriptorIndexingProperties* toCount,
+    size_t* count);
+
+void count_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    uint32_t featureBits,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* toCount,
+    size_t* count);
+
+void count_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    uint32_t featureBits,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* toCount,
+    size_t* count);
+
+void count_VkSubpassDescriptionDepthStencilResolve(
+    uint32_t featureBits,
+    const VkSubpassDescriptionDepthStencilResolve* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceDepthStencilResolveProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDepthStencilResolveProperties* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* toCount,
+    size_t* count);
+
+void count_VkImageStencilUsageCreateInfo(
+    uint32_t featureBits,
+    const VkImageStencilUsageCreateInfo* toCount,
+    size_t* count);
+
+void count_VkSamplerReductionModeCreateInfo(
+    uint32_t featureBits,
+    const VkSamplerReductionModeCreateInfo* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceImagelessFramebufferFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* toCount,
+    size_t* count);
+
+void count_VkFramebufferAttachmentImageInfo(
+    uint32_t featureBits,
+    const VkFramebufferAttachmentImageInfo* toCount,
+    size_t* count);
+
+void count_VkFramebufferAttachmentsCreateInfo(
+    uint32_t featureBits,
+    const VkFramebufferAttachmentsCreateInfo* toCount,
+    size_t* count);
+
+void count_VkRenderPassAttachmentBeginInfo(
+    uint32_t featureBits,
+    const VkRenderPassAttachmentBeginInfo* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toCount,
+    size_t* count);
+
+void count_VkAttachmentReferenceStencilLayout(
+    uint32_t featureBits,
+    const VkAttachmentReferenceStencilLayout* toCount,
+    size_t* count);
+
+void count_VkAttachmentDescriptionStencilLayout(
+    uint32_t featureBits,
+    const VkAttachmentDescriptionStencilLayout* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceHostQueryResetFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceHostQueryResetFeatures* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceTimelineSemaphoreProperties(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* toCount,
+    size_t* count);
+
+void count_VkSemaphoreTypeCreateInfo(
+    uint32_t featureBits,
+    const VkSemaphoreTypeCreateInfo* toCount,
+    size_t* count);
+
+void count_VkTimelineSemaphoreSubmitInfo(
+    uint32_t featureBits,
+    const VkTimelineSemaphoreSubmitInfo* toCount,
+    size_t* count);
+
+void count_VkSemaphoreWaitInfo(
+    uint32_t featureBits,
+    const VkSemaphoreWaitInfo* toCount,
+    size_t* count);
+
+void count_VkSemaphoreSignalInfo(
+    uint32_t featureBits,
+    const VkSemaphoreSignalInfo* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    uint32_t featureBits,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* toCount,
+    size_t* count);
+
+void count_VkBufferDeviceAddressInfo(
+    uint32_t featureBits,
+    const VkBufferDeviceAddressInfo* toCount,
+    size_t* count);
+
+void count_VkBufferOpaqueCaptureAddressCreateInfo(
+    uint32_t featureBits,
+    const VkBufferOpaqueCaptureAddressCreateInfo* toCount,
+    size_t* count);
+
+void count_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    uint32_t featureBits,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* toCount,
+    size_t* count);
+
+void count_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    uint32_t featureBits,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* toCount,
     size_t* count);
 
 #endif
@@ -977,26 +1238,21 @@
 
 #endif
 #ifdef VK_KHR_display
-void count_VkDisplayPropertiesKHR(
-    uint32_t featureBits,
-    const VkDisplayPropertiesKHR* toCount,
-    size_t* count);
-
 void count_VkDisplayModeParametersKHR(
     uint32_t featureBits,
     const VkDisplayModeParametersKHR* toCount,
     size_t* count);
 
-void count_VkDisplayModePropertiesKHR(
-    uint32_t featureBits,
-    const VkDisplayModePropertiesKHR* toCount,
-    size_t* count);
-
 void count_VkDisplayModeCreateInfoKHR(
     uint32_t featureBits,
     const VkDisplayModeCreateInfoKHR* toCount,
     size_t* count);
 
+void count_VkDisplayModePropertiesKHR(
+    uint32_t featureBits,
+    const VkDisplayModePropertiesKHR* toCount,
+    size_t* count);
+
 void count_VkDisplayPlaneCapabilitiesKHR(
     uint32_t featureBits,
     const VkDisplayPlaneCapabilitiesKHR* toCount,
@@ -1007,6 +1263,11 @@
     const VkDisplayPlanePropertiesKHR* toCount,
     size_t* count);
 
+void count_VkDisplayPropertiesKHR(
+    uint32_t featureBits,
+    const VkDisplayPropertiesKHR* toCount,
+    size_t* count);
+
 void count_VkDisplaySurfaceCreateInfoKHR(
     uint32_t featureBits,
     const VkDisplaySurfaceCreateInfoKHR* toCount,
@@ -1041,13 +1302,6 @@
     size_t* count);
 
 #endif
-#ifdef VK_KHR_mir_surface
-void count_VkMirSurfaceCreateInfoKHR(
-    uint32_t featureBits,
-    const VkMirSurfaceCreateInfoKHR* toCount,
-    size_t* count);
-
-#endif
 #ifdef VK_KHR_android_surface
 void count_VkAndroidSurfaceCreateInfoKHR(
     uint32_t featureBits,
@@ -1065,20 +1319,80 @@
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
 #ifdef VK_KHR_multiview
+DEFINE_ALIAS_FUNCTION(count_VkRenderPassMultiviewCreateInfo, count_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceMultiviewFeatures, count_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceMultiviewProperties, count_VkPhysicalDeviceMultiviewPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceFeatures2, count_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceProperties2, count_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkFormatProperties2, count_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkImageFormatProperties2, count_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceImageFormatInfo2, count_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkQueueFamilyProperties2, count_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceMemoryProperties2, count_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkSparseImageFormatProperties2, count_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceSparseImageFormatInfo2, count_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
 #endif
 #ifdef VK_KHR_device_group
+DEFINE_ALIAS_FUNCTION(count_VkMemoryAllocateFlagsInfo, count_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDeviceGroupRenderPassBeginInfo, count_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDeviceGroupCommandBufferBeginInfo, count_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDeviceGroupSubmitInfo, count_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDeviceGroupBindSparseInfo, count_VkDeviceGroupBindSparseInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkBindBufferMemoryDeviceGroupInfo, count_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkBindImageMemoryDeviceGroupInfo, count_VkBindImageMemoryDeviceGroupInfoKHR);
+
 #endif
 #ifdef VK_KHR_shader_draw_parameters
 #endif
 #ifdef VK_KHR_maintenance1
 #endif
 #ifdef VK_KHR_device_group_creation
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceGroupProperties, count_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDeviceGroupDeviceCreateInfo, count_VkDeviceGroupDeviceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_capabilities
+DEFINE_ALIAS_FUNCTION(count_VkExternalMemoryProperties, count_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceExternalImageFormatInfo, count_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkExternalImageFormatProperties, count_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceExternalBufferInfo, count_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkExternalBufferProperties, count_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceIDProperties, count_VkPhysicalDeviceIDPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_memory
+DEFINE_ALIAS_FUNCTION(count_VkExternalMemoryImageCreateInfo, count_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkExternalMemoryBufferCreateInfo, count_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkExportMemoryAllocateInfo, count_VkExportMemoryAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_win32
 void count_VkImportMemoryWin32HandleInfoKHR(
@@ -1127,8 +1441,14 @@
 
 #endif
 #ifdef VK_KHR_external_semaphore_capabilities
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceExternalSemaphoreInfo, count_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkExternalSemaphoreProperties, count_VkExternalSemaphorePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore
+DEFINE_ALIAS_FUNCTION(count_VkExportSemaphoreCreateInfo, count_VkExportSemaphoreCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void count_VkImportSemaphoreWin32HandleInfoKHR(
@@ -1171,7 +1491,15 @@
     size_t* count);
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceShaderFloat16Int8Features, count_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceShaderFloat16Int8Features, count_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+#endif
 #ifdef VK_KHR_16bit_storage
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDevice16BitStorageFeatures, count_VkPhysicalDevice16BitStorageFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_incremental_present
 void count_VkRectLayerKHR(
@@ -1191,42 +1519,35 @@
 
 #endif
 #ifdef VK_KHR_descriptor_update_template
+DEFINE_ALIAS_FUNCTION(count_VkDescriptorUpdateTemplateEntry, count_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDescriptorUpdateTemplateCreateInfo, count_VkDescriptorUpdateTemplateCreateInfoKHR);
+
+#endif
+#ifdef VK_KHR_imageless_framebuffer
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceImagelessFramebufferFeatures, count_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkFramebufferAttachmentsCreateInfo, count_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkFramebufferAttachmentImageInfo, count_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkRenderPassAttachmentBeginInfo, count_VkRenderPassAttachmentBeginInfoKHR);
+
 #endif
 #ifdef VK_KHR_create_renderpass2
-void count_VkAttachmentDescription2KHR(
-    uint32_t featureBits,
-    const VkAttachmentDescription2KHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkRenderPassCreateInfo2, count_VkRenderPassCreateInfo2KHR);
 
-void count_VkAttachmentReference2KHR(
-    uint32_t featureBits,
-    const VkAttachmentReference2KHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkAttachmentDescription2, count_VkAttachmentDescription2KHR);
 
-void count_VkSubpassDescription2KHR(
-    uint32_t featureBits,
-    const VkSubpassDescription2KHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkAttachmentReference2, count_VkAttachmentReference2KHR);
 
-void count_VkSubpassDependency2KHR(
-    uint32_t featureBits,
-    const VkSubpassDependency2KHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkSubpassDescription2, count_VkSubpassDescription2KHR);
 
-void count_VkRenderPassCreateInfo2KHR(
-    uint32_t featureBits,
-    const VkRenderPassCreateInfo2KHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkSubpassDependency2, count_VkSubpassDependency2KHR);
 
-void count_VkSubpassBeginInfoKHR(
-    uint32_t featureBits,
-    const VkSubpassBeginInfoKHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkSubpassBeginInfo, count_VkSubpassBeginInfoKHR);
 
-void count_VkSubpassEndInfoKHR(
-    uint32_t featureBits,
-    const VkSubpassEndInfoKHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkSubpassEndInfo, count_VkSubpassEndInfoKHR);
 
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -1237,8 +1558,14 @@
 
 #endif
 #ifdef VK_KHR_external_fence_capabilities
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceExternalFenceInfo, count_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkExternalFenceProperties, count_VkExternalFencePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_fence
+DEFINE_ALIAS_FUNCTION(count_VkExportFenceCreateInfo, count_VkExportFenceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_fence_win32
 void count_VkImportFenceWin32HandleInfoKHR(
@@ -1269,7 +1596,59 @@
     size_t* count);
 
 #endif
+#ifdef VK_KHR_performance_query
+void count_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkPerformanceCounterKHR(
+    uint32_t featureBits,
+    const VkPerformanceCounterKHR* toCount,
+    size_t* count);
+
+void count_VkPerformanceCounterDescriptionKHR(
+    uint32_t featureBits,
+    const VkPerformanceCounterDescriptionKHR* toCount,
+    size_t* count);
+
+void count_VkQueryPoolPerformanceCreateInfoKHR(
+    uint32_t featureBits,
+    const VkQueryPoolPerformanceCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPerformanceCounterResultKHR(
+    uint32_t featureBits,
+    const VkPerformanceCounterResultKHR* toCount,
+    size_t* count);
+
+void count_VkAcquireProfilingLockInfoKHR(
+    uint32_t featureBits,
+    const VkAcquireProfilingLockInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPerformanceQuerySubmitInfoKHR(
+    uint32_t featureBits,
+    const VkPerformanceQuerySubmitInfoKHR* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_KHR_maintenance2
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDevicePointClippingProperties, count_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkRenderPassInputAttachmentAspectCreateInfo, count_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkInputAttachmentAspectReference, count_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkImageViewUsageCreateInfo, count_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPipelineTessellationDomainOriginStateCreateInfo, count_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void count_VkPhysicalDeviceSurfaceInfo2KHR(
@@ -1289,6 +1668,10 @@
 
 #endif
 #ifdef VK_KHR_variable_pointers
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceVariablePointersFeatures, count_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceVariablePointersFeatures, count_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_get_display_properties2
 void count_VkDisplayProperties2KHR(
@@ -1318,39 +1701,295 @@
 
 #endif
 #ifdef VK_KHR_dedicated_allocation
+DEFINE_ALIAS_FUNCTION(count_VkMemoryDedicatedRequirements, count_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkMemoryDedicatedAllocateInfo, count_VkMemoryDedicatedAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_storage_buffer_storage_class
 #endif
 #ifdef VK_KHR_relaxed_block_layout
 #endif
 #ifdef VK_KHR_get_memory_requirements2
+DEFINE_ALIAS_FUNCTION(count_VkBufferMemoryRequirementsInfo2, count_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkImageMemoryRequirementsInfo2, count_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkImageSparseMemoryRequirementsInfo2, count_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkMemoryRequirements2, count_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkSparseImageMemoryRequirements2, count_VkSparseImageMemoryRequirements2KHR);
+
 #endif
 #ifdef VK_KHR_image_format_list
-void count_VkImageFormatListCreateInfoKHR(
-    uint32_t featureBits,
-    const VkImageFormatListCreateInfoKHR* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkImageFormatListCreateInfo, count_VkImageFormatListCreateInfoKHR);
 
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
+DEFINE_ALIAS_FUNCTION(count_VkSamplerYcbcrConversionCreateInfo, count_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkSamplerYcbcrConversionInfo, count_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkBindImagePlaneMemoryInfo, count_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkImagePlaneMemoryRequirementsInfo, count_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceSamplerYcbcrConversionFeatures, count_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkSamplerYcbcrConversionImageFormatProperties, count_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_bind_memory2
+DEFINE_ALIAS_FUNCTION(count_VkBindBufferMemoryInfo, count_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkBindImageMemoryInfo, count_VkBindImageMemoryInfoKHR);
+
 #endif
-#ifdef VK_KHR_maintenance3
-#endif
-#ifdef VK_KHR_draw_indirect_count
-#endif
-#ifdef VK_KHR_8bit_storage
-void count_VkPhysicalDevice8BitStorageFeaturesKHR(
+#ifdef VK_KHR_portability_subset
+void count_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
     uint32_t featureBits,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* toCount,
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* toCount,
     size_t* count);
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void count_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_maintenance3
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceMaintenance3Properties, count_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDescriptorSetLayoutSupport, count_VkDescriptorSetLayoutSupportKHR);
+
+#endif
+#ifdef VK_KHR_draw_indirect_count
+#endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, count_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_8bit_storage
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDevice8BitStorageFeatures, count_VkPhysicalDevice8BitStorageFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceShaderAtomicInt64Features, count_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_clock
+void count_VkPhysicalDeviceShaderClockFeaturesKHR(
     uint32_t featureBits,
-    const VkPhysicalDeviceShaderFloat16Int8Features* toCount,
+    const VkPhysicalDeviceShaderClockFeaturesKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_driver_properties
+DEFINE_ALIAS_FUNCTION(count_VkConformanceVersion, count_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceDriverProperties, count_VkPhysicalDeviceDriverPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_shader_float_controls
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceFloatControlsProperties, count_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+DEFINE_ALIAS_FUNCTION(count_VkSubpassDescriptionDepthStencilResolve, count_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceDepthStencilResolveProperties, count_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceTimelineSemaphoreFeatures, count_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceTimelineSemaphoreProperties, count_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkSemaphoreTypeCreateInfo, count_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkTimelineSemaphoreSubmitInfo, count_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkSemaphoreWaitInfo, count_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkSemaphoreSignalInfo, count_VkSemaphoreSignalInfoKHR);
+
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceVulkanMemoryModelFeatures, count_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void count_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void count_VkFragmentShadingRateAttachmentInfoKHR(
+    uint32_t featureBits,
+    const VkFragmentShadingRateAttachmentInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceFragmentShadingRateKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void count_VkSurfaceProtectedCapabilitiesKHR(
+    uint32_t featureBits,
+    const VkSurfaceProtectedCapabilitiesKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, count_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkAttachmentReferenceStencilLayout, count_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkAttachmentDescriptionStencilLayout, count_VkAttachmentDescriptionStencilLayoutKHR);
+
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, count_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_buffer_device_address
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceBufferDeviceAddressFeatures, count_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkBufferDeviceAddressInfo, count_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkBufferOpaqueCaptureAddressCreateInfo, count_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkMemoryOpaqueCaptureAddressAllocateInfo, count_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(count_VkDeviceMemoryOpaqueCaptureAddressInfo, count_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void count_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineExecutablePropertiesKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutablePropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineExecutableInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineExecutableStatisticValueKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableStatisticValueKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineExecutableStatisticKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableStatisticKHR* toCount,
+    size_t* count);
+
+void count_VkPipelineExecutableInternalRepresentationKHR(
+    uint32_t featureBits,
+    const VkPipelineExecutableInternalRepresentationKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void count_VkPipelineLibraryCreateInfoKHR(
+    uint32_t featureBits,
+    const VkPipelineLibraryCreateInfoKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void count_VkBufferCopy2KHR(
+    uint32_t featureBits,
+    const VkBufferCopy2KHR* toCount,
+    size_t* count);
+
+void count_VkCopyBufferInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyBufferInfo2KHR* toCount,
+    size_t* count);
+
+void count_VkImageCopy2KHR(
+    uint32_t featureBits,
+    const VkImageCopy2KHR* toCount,
+    size_t* count);
+
+void count_VkCopyImageInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyImageInfo2KHR* toCount,
+    size_t* count);
+
+void count_VkBufferImageCopy2KHR(
+    uint32_t featureBits,
+    const VkBufferImageCopy2KHR* toCount,
+    size_t* count);
+
+void count_VkCopyBufferToImageInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyBufferToImageInfo2KHR* toCount,
+    size_t* count);
+
+void count_VkCopyImageToBufferInfo2KHR(
+    uint32_t featureBits,
+    const VkCopyImageToBufferInfo2KHR* toCount,
+    size_t* count);
+
+void count_VkImageBlit2KHR(
+    uint32_t featureBits,
+    const VkImageBlit2KHR* toCount,
+    size_t* count);
+
+void count_VkBlitImageInfo2KHR(
+    uint32_t featureBits,
+    const VkBlitImageInfo2KHR* toCount,
+    size_t* count);
+
+void count_VkImageResolve2KHR(
+    uint32_t featureBits,
+    const VkImageResolve2KHR* toCount,
+    size_t* count);
+
+void count_VkResolveImageInfo2KHR(
+    uint32_t featureBits,
+    const VkResolveImageInfo2KHR* toCount,
     size_t* count);
 
 #endif
@@ -1421,6 +2060,35 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void count_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void count_VkImageViewHandleInfoNVX(
+    uint32_t featureBits,
+    const VkImageViewHandleInfoNVX* toCount,
+    size_t* count);
+
+void count_VkImageViewAddressPropertiesNVX(
+    uint32_t featureBits,
+    const VkImageViewAddressPropertiesNVX* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -1450,6 +2118,20 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void count_VkStreamDescriptorSurfaceCreateInfoGGP(
+    uint32_t featureBits,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void count_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -1508,6 +2190,25 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void count_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void count_VkImageViewASTCDecodeModeEXT(
+    uint32_t featureBits,
+    const VkImageViewASTCDecodeModeEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void count_VkConditionalRenderingBeginInfoEXT(
     uint32_t featureBits,
@@ -1525,78 +2226,6 @@
     size_t* count);
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void count_VkDeviceGeneratedCommandsFeaturesNVX(
-    uint32_t featureBits,
-    const VkDeviceGeneratedCommandsFeaturesNVX* toCount,
-    size_t* count);
-
-void count_VkDeviceGeneratedCommandsLimitsNVX(
-    uint32_t featureBits,
-    const VkDeviceGeneratedCommandsLimitsNVX* toCount,
-    size_t* count);
-
-void count_VkIndirectCommandsTokenNVX(
-    uint32_t featureBits,
-    const VkIndirectCommandsTokenNVX* toCount,
-    size_t* count);
-
-void count_VkIndirectCommandsLayoutTokenNVX(
-    uint32_t featureBits,
-    const VkIndirectCommandsLayoutTokenNVX* toCount,
-    size_t* count);
-
-void count_VkIndirectCommandsLayoutCreateInfoNVX(
-    uint32_t featureBits,
-    const VkIndirectCommandsLayoutCreateInfoNVX* toCount,
-    size_t* count);
-
-void count_VkCmdProcessCommandsInfoNVX(
-    uint32_t featureBits,
-    const VkCmdProcessCommandsInfoNVX* toCount,
-    size_t* count);
-
-void count_VkCmdReserveSpaceForCommandsInfoNVX(
-    uint32_t featureBits,
-    const VkCmdReserveSpaceForCommandsInfoNVX* toCount,
-    size_t* count);
-
-void count_VkObjectTableCreateInfoNVX(
-    uint32_t featureBits,
-    const VkObjectTableCreateInfoNVX* toCount,
-    size_t* count);
-
-void count_VkObjectTableEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableEntryNVX* toCount,
-    size_t* count);
-
-void count_VkObjectTablePipelineEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTablePipelineEntryNVX* toCount,
-    size_t* count);
-
-void count_VkObjectTableDescriptorSetEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableDescriptorSetEntryNVX* toCount,
-    size_t* count);
-
-void count_VkObjectTableVertexBufferEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableVertexBufferEntryNVX* toCount,
-    size_t* count);
-
-void count_VkObjectTableIndexBufferEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTableIndexBufferEntryNVX* toCount,
-    size_t* count);
-
-void count_VkObjectTablePushConstantEntryNVX(
-    uint32_t featureBits,
-    const VkObjectTablePushConstantEntryNVX* toCount,
-    size_t* count);
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void count_VkViewportWScalingNV(
     uint32_t featureBits,
@@ -1713,6 +2342,18 @@
     size_t* count);
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void count_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -1741,26 +2382,23 @@
     size_t* count);
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void count_VkDebugUtilsObjectNameInfoEXT(
-    uint32_t featureBits,
-    const VkDebugUtilsObjectNameInfoEXT* toCount,
-    size_t* count);
-
-void count_VkDebugUtilsObjectTagInfoEXT(
-    uint32_t featureBits,
-    const VkDebugUtilsObjectTagInfoEXT* toCount,
-    size_t* count);
-
 void count_VkDebugUtilsLabelEXT(
     uint32_t featureBits,
     const VkDebugUtilsLabelEXT* toCount,
     size_t* count);
 
+void count_VkDebugUtilsObjectNameInfoEXT(
+    uint32_t featureBits,
+    const VkDebugUtilsObjectNameInfoEXT* toCount,
+    size_t* count);
+
 void count_VkDebugUtilsMessengerCallbackDataEXT(
     uint32_t featureBits,
     const VkDebugUtilsMessengerCallbackDataEXT* toCount,
@@ -1771,6 +2409,11 @@
     const VkDebugUtilsMessengerCreateInfoEXT* toCount,
     size_t* count);
 
+void count_VkDebugUtilsObjectTagInfoEXT(
+    uint32_t featureBits,
+    const VkDebugUtilsObjectTagInfoEXT* toCount,
+    size_t* count);
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void count_VkAndroidHardwareBufferUsageANDROID(
@@ -1805,15 +2448,9 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void count_VkSamplerReductionModeCreateInfoEXT(
-    uint32_t featureBits,
-    const VkSamplerReductionModeCreateInfoEXT* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkSamplerReductionModeCreateInfo, count_VkSamplerReductionModeCreateInfoEXT);
 
-void count_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    uint32_t featureBits,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceSamplerFilterMinmaxProperties, count_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
 #endif
 #ifdef VK_AMD_gpu_shader_int16
@@ -1822,6 +2459,28 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void count_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkWriteDescriptorSetInlineUniformBlockEXT(
+    uint32_t featureBits,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* toCount,
+    size_t* count);
+
+void count_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -1899,8 +2558,52 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void count_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void count_VkDrmFormatModifierPropertiesEXT(
+    uint32_t featureBits,
+    const VkDrmFormatModifierPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkDrmFormatModifierPropertiesListEXT(
+    uint32_t featureBits,
+    const VkDrmFormatModifierPropertiesListEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toCount,
+    size_t* count);
+
+void count_VkImageDrmFormatModifierListCreateInfoEXT(
+    uint32_t featureBits,
+    const VkImageDrmFormatModifierListCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    uint32_t featureBits,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkImageDrmFormatModifierPropertiesEXT(
+    uint32_t featureBits,
+    const VkImageDrmFormatModifierPropertiesEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_validation_cache
 void count_VkValidationCacheCreateInfoEXT(
     uint32_t featureBits,
@@ -1914,34 +2617,165 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void count_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    uint32_t featureBits,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkDescriptorSetLayoutBindingFlagsCreateInfo, count_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void count_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    uint32_t featureBits,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceDescriptorIndexingFeatures, count_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void count_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    uint32_t featureBits,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceDescriptorIndexingProperties, count_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void count_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    uint32_t featureBits,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkDescriptorSetVariableDescriptorCountAllocateInfo, count_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void count_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    uint32_t featureBits,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toCount,
-    size_t* count);
+DEFINE_ALIAS_FUNCTION(count_VkDescriptorSetVariableDescriptorCountLayoutSupport, count_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+void count_VkShadingRatePaletteNV(
+    uint32_t featureBits,
+    const VkShadingRatePaletteNV* toCount,
+    size_t* count);
+
+void count_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* toCount,
+    size_t* count);
+
+void count_VkCoarseSampleLocationNV(
+    uint32_t featureBits,
+    const VkCoarseSampleLocationNV* toCount,
+    size_t* count);
+
+void count_VkCoarseSampleOrderCustomNV(
+    uint32_t featureBits,
+    const VkCoarseSampleOrderCustomNV* toCount,
+    size_t* count);
+
+void count_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_ray_tracing
+void count_VkRayTracingShaderGroupCreateInfoNV(
+    uint32_t featureBits,
+    const VkRayTracingShaderGroupCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkRayTracingPipelineCreateInfoNV(
+    uint32_t featureBits,
+    const VkRayTracingPipelineCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkGeometryTrianglesNV(
+    uint32_t featureBits,
+    const VkGeometryTrianglesNV* toCount,
+    size_t* count);
+
+void count_VkGeometryAABBNV(
+    uint32_t featureBits,
+    const VkGeometryAABBNV* toCount,
+    size_t* count);
+
+void count_VkGeometryDataNV(
+    uint32_t featureBits,
+    const VkGeometryDataNV* toCount,
+    size_t* count);
+
+void count_VkGeometryNV(
+    uint32_t featureBits,
+    const VkGeometryNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureInfoNV(
+    uint32_t featureBits,
+    const VkAccelerationStructureInfoNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureCreateInfoNV(
+    uint32_t featureBits,
+    const VkAccelerationStructureCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkBindAccelerationStructureMemoryInfoNV(
+    uint32_t featureBits,
+    const VkBindAccelerationStructureMemoryInfoNV* toCount,
+    size_t* count);
+
+void count_VkWriteDescriptorSetAccelerationStructureNV(
+    uint32_t featureBits,
+    const VkWriteDescriptorSetAccelerationStructureNV* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureMemoryRequirementsInfoNV(
+    uint32_t featureBits,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceRayTracingPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayTracingPropertiesNV* toCount,
+    size_t* count);
+
+void count_VkTransformMatrixKHR(
+    uint32_t featureBits,
+    const VkTransformMatrixKHR* toCount,
+    size_t* count);
+
+DEFINE_ALIAS_FUNCTION(count_VkTransformMatrixKHR, count_VkTransformMatrixNV);
+
+void count_VkAabbPositionsKHR(
+    uint32_t featureBits,
+    const VkAabbPositionsKHR* toCount,
+    size_t* count);
+
+DEFINE_ALIAS_FUNCTION(count_VkAabbPositionsKHR, count_VkAabbPositionsNV);
+
+void count_VkAccelerationStructureInstanceKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureInstanceKHR* toCount,
+    size_t* count);
+
+DEFINE_ALIAS_FUNCTION(count_VkAccelerationStructureInstanceKHR, count_VkAccelerationStructureInstanceNV);
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void count_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void count_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* toCount,
+    size_t* count);
+
+void count_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    uint32_t featureBits,
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 void count_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     uint32_t featureBits,
@@ -1968,6 +2802,20 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void count_VkPipelineCompilerControlCreateInfoAMD(
+    uint32_t featureBits,
+    const VkPipelineCompilerControlCreateInfoAMD* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void count_VkCalibratedTimestampInfoEXT(
+    uint32_t featureBits,
+    const VkCalibratedTimestampInfoEXT* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void count_VkPhysicalDeviceShaderCorePropertiesAMD(
     uint32_t featureBits,
@@ -1975,6 +2823,13 @@
     size_t* count);
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void count_VkDeviceMemoryOverallocationCreateInfoAMD(
+    uint32_t featureBits,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void count_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     uint32_t featureBits,
@@ -1991,9 +2846,83 @@
     const VkPipelineVertexInputDivisorStateCreateInfoEXT* toCount,
     size_t* count);
 
+void count_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_GGP_frame_token
+void count_VkPresentFrameTokenGGP(
+    uint32_t featureBits,
+    const VkPresentFrameTokenGGP* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void count_VkPipelineCreationFeedbackEXT(
+    uint32_t featureBits,
+    const VkPipelineCreationFeedbackEXT* toCount,
+    size_t* count);
+
+void count_VkPipelineCreationFeedbackCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineCreationFeedbackCreateInfoEXT* toCount,
+    size_t* count);
+
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void count_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_mesh_shader
+void count_VkPhysicalDeviceMeshShaderFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceMeshShaderPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* toCount,
+    size_t* count);
+
+void count_VkDrawMeshTasksIndirectCommandNV(
+    uint32_t featureBits,
+    const VkDrawMeshTasksIndirectCommandNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void count_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void count_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void count_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* toCount,
+    size_t* count);
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void count_VkQueueFamilyCheckpointPropertiesNV(
     uint32_t featureBits,
@@ -2006,7 +2935,89 @@
     size_t* count);
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void count_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_INTEL_performance_query
+void count_VkPerformanceValueDataINTEL(
+    uint32_t featureBits,
+    const VkPerformanceValueDataINTEL* toCount,
+    size_t* count);
+
+void count_VkPerformanceValueINTEL(
+    uint32_t featureBits,
+    const VkPerformanceValueINTEL* toCount,
+    size_t* count);
+
+void count_VkInitializePerformanceApiInfoINTEL(
+    uint32_t featureBits,
+    const VkInitializePerformanceApiInfoINTEL* toCount,
+    size_t* count);
+
+void count_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    uint32_t featureBits,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* toCount,
+    size_t* count);
+
+DEFINE_ALIAS_FUNCTION(count_VkQueryPoolPerformanceQueryCreateInfoINTEL, count_VkQueryPoolCreateInfoINTEL);
+
+void count_VkPerformanceMarkerInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceMarkerInfoINTEL* toCount,
+    size_t* count);
+
+void count_VkPerformanceStreamMarkerInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceStreamMarkerInfoINTEL* toCount,
+    size_t* count);
+
+void count_VkPerformanceOverrideInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceOverrideInfoINTEL* toCount,
+    size_t* count);
+
+void count_VkPerformanceConfigurationAcquireInfoINTEL(
+    uint32_t featureBits,
+    const VkPerformanceConfigurationAcquireInfoINTEL* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void count_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void count_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    uint32_t featureBits,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* toCount,
+    size_t* count);
+
+void count_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    uint32_t featureBits,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void count_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    uint32_t featureBits,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_metal_surface
+void count_VkMetalSurfaceCreateInfoEXT(
+    uint32_t featureBits,
+    const VkMetalSurfaceCreateInfoEXT* toCount,
+    size_t* count);
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void count_VkImportColorBufferGOOGLE(
@@ -2025,23 +3036,609 @@
     size_t* count);
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceScalarBlockLayoutFeatures, count_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void count_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toCount,
+    size_t* count);
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void count_VkPhysicalDeviceShaderCoreProperties2AMD(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* toCount,
+    size_t* count);
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void count_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* toCount,
+    size_t* count);
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void count_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toCount,
+    size_t* count);
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void count_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* toCount,
+    size_t* count);
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void count_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkMemoryPriorityAllocateInfoEXT(
+    uint32_t featureBits,
+    const VkMemoryPriorityAllocateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void count_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void count_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toCount,
+    size_t* count);
+
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, count_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(count_VkBufferDeviceAddressInfo, count_VkBufferDeviceAddressInfoEXT);
+
+void count_VkBufferDeviceAddressCreateInfoEXT(
+    uint32_t featureBits,
+    const VkBufferDeviceAddressCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_tooling_info
+void count_VkPhysicalDeviceToolPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceToolPropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+DEFINE_ALIAS_FUNCTION(count_VkImageStencilUsageCreateInfo, count_VkImageStencilUsageCreateInfoEXT);
+
+#endif
+#ifdef VK_EXT_validation_features
+void count_VkValidationFeaturesEXT(
+    uint32_t featureBits,
+    const VkValidationFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void count_VkCooperativeMatrixPropertiesNV(
+    uint32_t featureBits,
+    const VkCooperativeMatrixPropertiesNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void count_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkPipelineCoverageReductionStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineCoverageReductionStateCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkFramebufferMixedSamplesCombinationNV(
+    uint32_t featureBits,
+    const VkFramebufferMixedSamplesCombinationNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void count_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void count_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void count_VkSurfaceFullScreenExclusiveInfoEXT(
+    uint32_t featureBits,
+    const VkSurfaceFullScreenExclusiveInfoEXT* toCount,
+    size_t* count);
+
+void count_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    uint32_t featureBits,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* toCount,
+    size_t* count);
+
+void count_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    uint32_t featureBits,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_headless_surface
+void count_VkHeadlessSurfaceCreateInfoEXT(
+    uint32_t featureBits,
+    const VkHeadlessSurfaceCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void count_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkPipelineRasterizationLineStateCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void count_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_host_query_reset
+DEFINE_ALIAS_FUNCTION(count_VkPhysicalDeviceHostQueryResetFeatures, count_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+#endif
+#ifdef VK_EXT_index_type_uint8
+void count_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void count_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void count_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void count_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkGraphicsShaderGroupCreateInfoNV(
+    uint32_t featureBits,
+    const VkGraphicsShaderGroupCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    uint32_t featureBits,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkBindShaderGroupIndirectCommandNV(
+    uint32_t featureBits,
+    const VkBindShaderGroupIndirectCommandNV* toCount,
+    size_t* count);
+
+void count_VkBindIndexBufferIndirectCommandNV(
+    uint32_t featureBits,
+    const VkBindIndexBufferIndirectCommandNV* toCount,
+    size_t* count);
+
+void count_VkBindVertexBufferIndirectCommandNV(
+    uint32_t featureBits,
+    const VkBindVertexBufferIndirectCommandNV* toCount,
+    size_t* count);
+
+void count_VkSetStateFlagsIndirectCommandNV(
+    uint32_t featureBits,
+    const VkSetStateFlagsIndirectCommandNV* toCount,
+    size_t* count);
+
+void count_VkIndirectCommandsStreamNV(
+    uint32_t featureBits,
+    const VkIndirectCommandsStreamNV* toCount,
+    size_t* count);
+
+void count_VkIndirectCommandsLayoutTokenNV(
+    uint32_t featureBits,
+    const VkIndirectCommandsLayoutTokenNV* toCount,
+    size_t* count);
+
+void count_VkIndirectCommandsLayoutCreateInfoNV(
+    uint32_t featureBits,
+    const VkIndirectCommandsLayoutCreateInfoNV* toCount,
+    size_t* count);
+
+void count_VkGeneratedCommandsInfoNV(
+    uint32_t featureBits,
+    const VkGeneratedCommandsInfoNV* toCount,
+    size_t* count);
+
+void count_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    uint32_t featureBits,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void count_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void count_VkRenderPassTransformBeginInfoQCOM(
+    uint32_t featureBits,
+    const VkRenderPassTransformBeginInfoQCOM* toCount,
+    size_t* count);
+
+void count_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    uint32_t featureBits,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void count_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkDeviceMemoryReportCallbackDataEXT(
+    uint32_t featureBits,
+    const VkDeviceMemoryReportCallbackDataEXT* toCount,
+    size_t* count);
+
+void count_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_robustness2
+void count_VkPhysicalDeviceRobustness2FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceRobustness2PropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void count_VkSamplerCustomBorderColorCreateInfoEXT(
+    uint32_t featureBits,
+    const VkSamplerCustomBorderColorCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void count_VkPhysicalDevicePrivateDataFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkDevicePrivateDataCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDevicePrivateDataCreateInfoEXT* toCount,
+    size_t* count);
+
+void count_VkPrivateDataSlotCreateInfoEXT(
+    uint32_t featureBits,
+    const VkPrivateDataSlotCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void count_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void count_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkDeviceDiagnosticsConfigCreateInfoNV(
+    uint32_t featureBits,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void count_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toCount,
+    size_t* count);
+
+void count_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    uint32_t featureBits,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void count_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void count_VkCopyCommandTransformInfoQCOM(
+    uint32_t featureBits,
+    const VkCopyCommandTransformInfoQCOM* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_image_robustness
+void count_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_4444_formats
+void count_VkPhysicalDevice4444FormatsFeaturesEXT(
+    uint32_t featureBits,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void count_VkDirectFBSurfaceCreateInfoEXT(
+    uint32_t featureBits,
+    const VkDirectFBSurfaceCreateInfoEXT* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void count_VkDeviceOrHostAddressKHR(
+    uint32_t featureBits,
+    const VkDeviceOrHostAddressKHR* toCount,
+    size_t* count);
+
+void count_VkDeviceOrHostAddressConstKHR(
+    uint32_t featureBits,
+    const VkDeviceOrHostAddressConstKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureBuildRangeInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureBuildRangeInfoKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureGeometryTrianglesDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureGeometryAabbsDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryAabbsDataKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureGeometryInstancesDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryInstancesDataKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureGeometryDataKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryDataKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureGeometryKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureGeometryKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureBuildGeometryInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureBuildGeometryInfoKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureCreateInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkWriteDescriptorSetAccelerationStructureKHR(
+    uint32_t featureBits,
+    const VkWriteDescriptorSetAccelerationStructureKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureDeviceAddressInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureDeviceAddressInfoKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureVersionInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureVersionInfoKHR* toCount,
+    size_t* count);
+
+void count_VkCopyAccelerationStructureToMemoryInfoKHR(
+    uint32_t featureBits,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* toCount,
+    size_t* count);
+
+void count_VkCopyMemoryToAccelerationStructureInfoKHR(
+    uint32_t featureBits,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* toCount,
+    size_t* count);
+
+void count_VkCopyAccelerationStructureInfoKHR(
+    uint32_t featureBits,
+    const VkCopyAccelerationStructureInfoKHR* toCount,
+    size_t* count);
+
+void count_VkAccelerationStructureBuildSizesInfoKHR(
+    uint32_t featureBits,
+    const VkAccelerationStructureBuildSizesInfoKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void count_VkRayTracingShaderGroupCreateInfoKHR(
+    uint32_t featureBits,
+    const VkRayTracingShaderGroupCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    uint32_t featureBits,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkRayTracingPipelineCreateInfoKHR(
+    uint32_t featureBits,
+    const VkRayTracingPipelineCreateInfoKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toCount,
+    size_t* count);
+
+void count_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toCount,
+    size_t* count);
+
+void count_VkStridedDeviceAddressRegionKHR(
+    uint32_t featureBits,
+    const VkStridedDeviceAddressRegionKHR* toCount,
+    size_t* count);
+
+void count_VkTraceRaysIndirectCommandKHR(
+    uint32_t featureBits,
+    const VkTraceRaysIndirectCommandKHR* toCount,
+    size_t* count);
+
+#endif
+#ifdef VK_KHR_ray_query
+void count_VkPhysicalDeviceRayQueryFeaturesKHR(
+    uint32_t featureBits,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* toCount,
+    size_t* count);
+
 #endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
index 0a861c6..535e12c 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.cpp
@@ -37,6 +37,184 @@
     void* structExtension_out);
 
 #ifdef VK_VERSION_1_0
+void deepcopy_VkExtent2D(
+    BumpPool* pool,
+    const VkExtent2D* from,
+    VkExtent2D* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkExtent3D(
+    BumpPool* pool,
+    const VkExtent3D* from,
+    VkExtent3D* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkOffset2D(
+    BumpPool* pool,
+    const VkOffset2D* from,
+    VkOffset2D* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkOffset3D(
+    BumpPool* pool,
+    const VkOffset3D* from,
+    VkOffset3D* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkRect2D(
+    BumpPool* pool,
+    const VkRect2D* from,
+    VkRect2D* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkOffset2D(pool, &from->offset, (VkOffset2D*)(&to->offset));
+    deepcopy_VkExtent2D(pool, &from->extent, (VkExtent2D*)(&to->extent));
+}
+
+void deepcopy_VkBaseInStructure(
+    BumpPool* pool,
+    const VkBaseInStructure* from,
+    VkBaseInStructure* 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 VkBaseInStructure*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBaseOutStructure(
+    BumpPool* pool,
+    const VkBaseOutStructure* from,
+    VkBaseOutStructure* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (VkBaseOutStructure*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferMemoryBarrier(
+    BumpPool* pool,
+    const VkBufferMemoryBarrier* from,
+    VkBufferMemoryBarrier* 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));
+    }
+}
+
+void deepcopy_VkDispatchIndirectCommand(
+    BumpPool* pool,
+    const VkDispatchIndirectCommand* from,
+    VkDispatchIndirectCommand* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkDrawIndexedIndirectCommand(
+    BumpPool* pool,
+    const VkDrawIndexedIndirectCommand* from,
+    VkDrawIndexedIndirectCommand* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkDrawIndirectCommand(
+    BumpPool* pool,
+    const VkDrawIndirectCommand* from,
+    VkDrawIndirectCommand* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkImageSubresourceRange(
+    BumpPool* pool,
+    const VkImageSubresourceRange* from,
+    VkImageSubresourceRange* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkImageMemoryBarrier(
+    BumpPool* pool,
+    const VkImageMemoryBarrier* from,
+    VkImageMemoryBarrier* 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));
+    }
+    deepcopy_VkImageSubresourceRange(pool, &from->subresourceRange, (VkImageSubresourceRange*)(&to->subresourceRange));
+}
+
+void deepcopy_VkMemoryBarrier(
+    BumpPool* pool,
+    const VkMemoryBarrier* from,
+    VkMemoryBarrier* 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));
+    }
+}
+
+void deepcopy_VkAllocationCallbacks(
+    BumpPool* pool,
+    const VkAllocationCallbacks* from,
+    VkAllocationCallbacks* to)
+{
+    (void)pool;
+    *to = *from;
+    to->pUserData = nullptr;
+    if (from->pUserData)
+    {
+        to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t));
+    }
+}
+
 void deepcopy_VkApplicationInfo(
     BumpPool* pool,
     const VkApplicationInfo* from,
@@ -63,6 +241,25 @@
     }
 }
 
+void deepcopy_VkFormatProperties(
+    BumpPool* pool,
+    const VkFormatProperties* from,
+    VkFormatProperties* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkImageFormatProperties(
+    BumpPool* pool,
+    const VkImageFormatProperties* from,
+    VkImageFormatProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkExtent3D(pool, &from->maxExtent, (VkExtent3D*)(&to->maxExtent));
+}
+
 void deepcopy_VkInstanceCreateInfo(
     BumpPool* pool,
     const VkInstanceCreateInfo* from,
@@ -95,18 +292,22 @@
     }
 }
 
-void deepcopy_VkAllocationCallbacks(
+void deepcopy_VkMemoryHeap(
     BumpPool* pool,
-    const VkAllocationCallbacks* from,
-    VkAllocationCallbacks* to)
+    const VkMemoryHeap* from,
+    VkMemoryHeap* to)
 {
     (void)pool;
     *to = *from;
-    to->pUserData = nullptr;
-    if (from->pUserData)
-    {
-        to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t));
-    }
+}
+
+void deepcopy_VkMemoryType(
+    BumpPool* pool,
+    const VkMemoryType* from,
+    VkMemoryType* to)
+{
+    (void)pool;
+    *to = *from;
 }
 
 void deepcopy_VkPhysicalDeviceFeatures(
@@ -118,34 +319,6 @@
     *to = *from;
 }
 
-void deepcopy_VkFormatProperties(
-    BumpPool* pool,
-    const VkFormatProperties* from,
-    VkFormatProperties* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkExtent3D(
-    BumpPool* pool,
-    const VkExtent3D* from,
-    VkExtent3D* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkImageFormatProperties(
-    BumpPool* pool,
-    const VkImageFormatProperties* from,
-    VkImageFormatProperties* to)
-{
-    (void)pool;
-    *to = *from;
-    deepcopy_VkExtent3D(pool, &from->maxExtent, (VkExtent3D*)(&to->maxExtent));
-}
-
 void deepcopy_VkPhysicalDeviceLimits(
     BumpPool* pool,
     const VkPhysicalDeviceLimits* from,
@@ -161,6 +334,23 @@
     memcpy(to->lineWidthRange, from->lineWidthRange, 2 * sizeof(float));
 }
 
+void deepcopy_VkPhysicalDeviceMemoryProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceMemoryProperties* from,
+    VkPhysicalDeviceMemoryProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        deepcopy_VkMemoryType(pool, from->memoryTypes + i, (VkMemoryType*)(to->memoryTypes + i));
+    }
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        deepcopy_VkMemoryHeap(pool, from->memoryHeaps + i, (VkMemoryHeap*)(to->memoryHeaps + i));
+    }
+}
+
 void deepcopy_VkPhysicalDeviceSparseProperties(
     BumpPool* pool,
     const VkPhysicalDeviceSparseProperties* from,
@@ -193,41 +383,6 @@
     deepcopy_VkExtent3D(pool, &from->minImageTransferGranularity, (VkExtent3D*)(&to->minImageTransferGranularity));
 }
 
-void deepcopy_VkMemoryType(
-    BumpPool* pool,
-    const VkMemoryType* from,
-    VkMemoryType* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkMemoryHeap(
-    BumpPool* pool,
-    const VkMemoryHeap* from,
-    VkMemoryHeap* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkPhysicalDeviceMemoryProperties(
-    BumpPool* pool,
-    const VkPhysicalDeviceMemoryProperties* from,
-    VkPhysicalDeviceMemoryProperties* to)
-{
-    (void)pool;
-    *to = *from;
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        deepcopy_VkMemoryType(pool, from->memoryTypes + i, (VkMemoryType*)(to->memoryTypes + i));
-    }
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        deepcopy_VkMemoryHeap(pool, from->memoryHeaps + i, (VkMemoryHeap*)(to->memoryHeaps + i));
-    }
-}
-
 void deepcopy_VkDeviceQueueCreateInfo(
     BumpPool* pool,
     const VkDeviceQueueCreateInfo* from,
@@ -263,14 +418,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pQueueCreateInfos = nullptr;
-    if (from->pQueueCreateInfos)
+    if ((from) != nullptr)
     {
-        to->pQueueCreateInfos = (VkDeviceQueueCreateInfo*)pool->alloc(from->queueCreateInfoCount * sizeof(const VkDeviceQueueCreateInfo));
-        to->queueCreateInfoCount = from->queueCreateInfoCount;
-        for (uint32_t i = 0; i < (uint32_t)from->queueCreateInfoCount; ++i)
+        to->pQueueCreateInfos = nullptr;
+        if (from->pQueueCreateInfos)
         {
-            deepcopy_VkDeviceQueueCreateInfo(pool, from->pQueueCreateInfos + i, (VkDeviceQueueCreateInfo*)(to->pQueueCreateInfos + i));
+            to->pQueueCreateInfos = (VkDeviceQueueCreateInfo*)pool->alloc(from->queueCreateInfoCount * sizeof(const VkDeviceQueueCreateInfo));
+            to->queueCreateInfoCount = from->queueCreateInfoCount;
+            for (uint32_t i = 0; i < (uint32_t)from->queueCreateInfoCount; ++i)
+            {
+                deepcopy_VkDeviceQueueCreateInfo(pool, from->pQueueCreateInfos + i, (VkDeviceQueueCreateInfo*)(to->pQueueCreateInfos + i));
+            }
         }
     }
     to->ppEnabledLayerNames = nullptr;
@@ -348,10 +506,10 @@
     }
 }
 
-void deepcopy_VkMemoryAllocateInfo(
+void deepcopy_VkMappedMemoryRange(
     BumpPool* pool,
-    const VkMemoryAllocateInfo* from,
-    VkMemoryAllocateInfo* to)
+    const VkMappedMemoryRange* from,
+    VkMappedMemoryRange* to)
 {
     (void)pool;
     *to = *from;
@@ -364,10 +522,10 @@
     }
 }
 
-void deepcopy_VkMappedMemoryRange(
+void deepcopy_VkMemoryAllocateInfo(
     BumpPool* pool,
-    const VkMappedMemoryRange* from,
-    VkMappedMemoryRange* to)
+    const VkMemoryAllocateInfo* from,
+    VkMemoryAllocateInfo* to)
 {
     (void)pool;
     *to = *from;
@@ -389,26 +547,6 @@
     *to = *from;
 }
 
-void deepcopy_VkSparseImageFormatProperties(
-    BumpPool* pool,
-    const VkSparseImageFormatProperties* from,
-    VkSparseImageFormatProperties* to)
-{
-    (void)pool;
-    *to = *from;
-    deepcopy_VkExtent3D(pool, &from->imageGranularity, (VkExtent3D*)(&to->imageGranularity));
-}
-
-void deepcopy_VkSparseImageMemoryRequirements(
-    BumpPool* pool,
-    const VkSparseImageMemoryRequirements* from,
-    VkSparseImageMemoryRequirements* to)
-{
-    (void)pool;
-    *to = *from;
-    deepcopy_VkSparseImageFormatProperties(pool, &from->formatProperties, (VkSparseImageFormatProperties*)(&to->formatProperties));
-}
-
 void deepcopy_VkSparseMemoryBind(
     BumpPool* pool,
     const VkSparseMemoryBind* from,
@@ -425,14 +563,17 @@
 {
     (void)pool;
     *to = *from;
-    to->pBinds = nullptr;
-    if (from->pBinds)
+    if ((from) != nullptr)
     {
-        to->pBinds = (VkSparseMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseMemoryBind));
-        to->bindCount = from->bindCount;
-        for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
+        to->pBinds = nullptr;
+        if (from->pBinds)
         {
-            deepcopy_VkSparseMemoryBind(pool, from->pBinds + i, (VkSparseMemoryBind*)(to->pBinds + i));
+            to->pBinds = (VkSparseMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseMemoryBind));
+            to->bindCount = from->bindCount;
+            for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
+            {
+                deepcopy_VkSparseMemoryBind(pool, from->pBinds + i, (VkSparseMemoryBind*)(to->pBinds + i));
+            }
         }
     }
 }
@@ -444,14 +585,17 @@
 {
     (void)pool;
     *to = *from;
-    to->pBinds = nullptr;
-    if (from->pBinds)
+    if ((from) != nullptr)
     {
-        to->pBinds = (VkSparseMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseMemoryBind));
-        to->bindCount = from->bindCount;
-        for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
+        to->pBinds = nullptr;
+        if (from->pBinds)
         {
-            deepcopy_VkSparseMemoryBind(pool, from->pBinds + i, (VkSparseMemoryBind*)(to->pBinds + i));
+            to->pBinds = (VkSparseMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseMemoryBind));
+            to->bindCount = from->bindCount;
+            for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
+            {
+                deepcopy_VkSparseMemoryBind(pool, from->pBinds + i, (VkSparseMemoryBind*)(to->pBinds + i));
+            }
         }
     }
 }
@@ -465,15 +609,6 @@
     *to = *from;
 }
 
-void deepcopy_VkOffset3D(
-    BumpPool* pool,
-    const VkOffset3D* from,
-    VkOffset3D* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
 void deepcopy_VkSparseImageMemoryBind(
     BumpPool* pool,
     const VkSparseImageMemoryBind* from,
@@ -493,14 +628,17 @@
 {
     (void)pool;
     *to = *from;
-    to->pBinds = nullptr;
-    if (from->pBinds)
+    if ((from) != nullptr)
     {
-        to->pBinds = (VkSparseImageMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseImageMemoryBind));
-        to->bindCount = from->bindCount;
-        for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
+        to->pBinds = nullptr;
+        if (from->pBinds)
         {
-            deepcopy_VkSparseImageMemoryBind(pool, from->pBinds + i, (VkSparseImageMemoryBind*)(to->pBinds + i));
+            to->pBinds = (VkSparseImageMemoryBind*)pool->alloc(from->bindCount * sizeof(const VkSparseImageMemoryBind));
+            to->bindCount = from->bindCount;
+            for (uint32_t i = 0; i < (uint32_t)from->bindCount; ++i)
+            {
+                deepcopy_VkSparseImageMemoryBind(pool, from->pBinds + i, (VkSparseImageMemoryBind*)(to->pBinds + i));
+            }
         }
     }
 }
@@ -524,34 +662,43 @@
     {
         to->pWaitSemaphores = (VkSemaphore*)pool->dupArray(from->pWaitSemaphores, from->waitSemaphoreCount * sizeof(const VkSemaphore));
     }
-    to->pBufferBinds = nullptr;
-    if (from->pBufferBinds)
+    if ((from) != nullptr)
     {
-        to->pBufferBinds = (VkSparseBufferMemoryBindInfo*)pool->alloc(from->bufferBindCount * sizeof(const VkSparseBufferMemoryBindInfo));
-        to->bufferBindCount = from->bufferBindCount;
-        for (uint32_t i = 0; i < (uint32_t)from->bufferBindCount; ++i)
+        to->pBufferBinds = nullptr;
+        if (from->pBufferBinds)
         {
-            deepcopy_VkSparseBufferMemoryBindInfo(pool, from->pBufferBinds + i, (VkSparseBufferMemoryBindInfo*)(to->pBufferBinds + i));
+            to->pBufferBinds = (VkSparseBufferMemoryBindInfo*)pool->alloc(from->bufferBindCount * sizeof(const VkSparseBufferMemoryBindInfo));
+            to->bufferBindCount = from->bufferBindCount;
+            for (uint32_t i = 0; i < (uint32_t)from->bufferBindCount; ++i)
+            {
+                deepcopy_VkSparseBufferMemoryBindInfo(pool, from->pBufferBinds + i, (VkSparseBufferMemoryBindInfo*)(to->pBufferBinds + i));
+            }
         }
     }
-    to->pImageOpaqueBinds = nullptr;
-    if (from->pImageOpaqueBinds)
+    if ((from) != nullptr)
     {
-        to->pImageOpaqueBinds = (VkSparseImageOpaqueMemoryBindInfo*)pool->alloc(from->imageOpaqueBindCount * sizeof(const VkSparseImageOpaqueMemoryBindInfo));
-        to->imageOpaqueBindCount = from->imageOpaqueBindCount;
-        for (uint32_t i = 0; i < (uint32_t)from->imageOpaqueBindCount; ++i)
+        to->pImageOpaqueBinds = nullptr;
+        if (from->pImageOpaqueBinds)
         {
-            deepcopy_VkSparseImageOpaqueMemoryBindInfo(pool, from->pImageOpaqueBinds + i, (VkSparseImageOpaqueMemoryBindInfo*)(to->pImageOpaqueBinds + i));
+            to->pImageOpaqueBinds = (VkSparseImageOpaqueMemoryBindInfo*)pool->alloc(from->imageOpaqueBindCount * sizeof(const VkSparseImageOpaqueMemoryBindInfo));
+            to->imageOpaqueBindCount = from->imageOpaqueBindCount;
+            for (uint32_t i = 0; i < (uint32_t)from->imageOpaqueBindCount; ++i)
+            {
+                deepcopy_VkSparseImageOpaqueMemoryBindInfo(pool, from->pImageOpaqueBinds + i, (VkSparseImageOpaqueMemoryBindInfo*)(to->pImageOpaqueBinds + i));
+            }
         }
     }
-    to->pImageBinds = nullptr;
-    if (from->pImageBinds)
+    if ((from) != nullptr)
     {
-        to->pImageBinds = (VkSparseImageMemoryBindInfo*)pool->alloc(from->imageBindCount * sizeof(const VkSparseImageMemoryBindInfo));
-        to->imageBindCount = from->imageBindCount;
-        for (uint32_t i = 0; i < (uint32_t)from->imageBindCount; ++i)
+        to->pImageBinds = nullptr;
+        if (from->pImageBinds)
         {
-            deepcopy_VkSparseImageMemoryBindInfo(pool, from->pImageBinds + i, (VkSparseImageMemoryBindInfo*)(to->pImageBinds + i));
+            to->pImageBinds = (VkSparseImageMemoryBindInfo*)pool->alloc(from->imageBindCount * sizeof(const VkSparseImageMemoryBindInfo));
+            to->imageBindCount = from->imageBindCount;
+            for (uint32_t i = 0; i < (uint32_t)from->imageBindCount; ++i)
+            {
+                deepcopy_VkSparseImageMemoryBindInfo(pool, from->pImageBinds + i, (VkSparseImageMemoryBindInfo*)(to->pImageBinds + i));
+            }
         }
     }
     to->pSignalSemaphores = nullptr;
@@ -561,6 +708,26 @@
     }
 }
 
+void deepcopy_VkSparseImageFormatProperties(
+    BumpPool* pool,
+    const VkSparseImageFormatProperties* from,
+    VkSparseImageFormatProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkExtent3D(pool, &from->imageGranularity, (VkExtent3D*)(&to->imageGranularity));
+}
+
+void deepcopy_VkSparseImageMemoryRequirements(
+    BumpPool* pool,
+    const VkSparseImageMemoryRequirements* from,
+    VkSparseImageMemoryRequirements* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkSparseImageFormatProperties(pool, &from->formatProperties, (VkSparseImageFormatProperties*)(&to->formatProperties));
+}
+
 void deepcopy_VkFenceCreateInfo(
     BumpPool* pool,
     const VkFenceCreateInfo* from,
@@ -702,15 +869,6 @@
     *to = *from;
 }
 
-void deepcopy_VkImageSubresourceRange(
-    BumpPool* pool,
-    const VkImageSubresourceRange* from,
-    VkImageSubresourceRange* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
 void deepcopy_VkImageViewCreateInfo(
     BumpPool* pool,
     const VkImageViewCreateInfo* from,
@@ -787,14 +945,17 @@
 {
     (void)pool;
     *to = *from;
-    to->pMapEntries = nullptr;
-    if (from->pMapEntries)
+    if ((from) != nullptr)
     {
-        to->pMapEntries = (VkSpecializationMapEntry*)pool->alloc(from->mapEntryCount * sizeof(const VkSpecializationMapEntry));
-        to->mapEntryCount = from->mapEntryCount;
-        for (uint32_t i = 0; i < (uint32_t)from->mapEntryCount; ++i)
+        to->pMapEntries = nullptr;
+        if (from->pMapEntries)
         {
-            deepcopy_VkSpecializationMapEntry(pool, from->pMapEntries + i, (VkSpecializationMapEntry*)(to->pMapEntries + i));
+            to->pMapEntries = (VkSpecializationMapEntry*)pool->alloc(from->mapEntryCount * sizeof(const VkSpecializationMapEntry));
+            to->mapEntryCount = from->mapEntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->mapEntryCount; ++i)
+            {
+                deepcopy_VkSpecializationMapEntry(pool, from->pMapEntries + i, (VkSpecializationMapEntry*)(to->pMapEntries + i));
+            }
         }
     }
     to->pData = nullptr;
@@ -831,6 +992,23 @@
     }
 }
 
+void deepcopy_VkComputePipelineCreateInfo(
+    BumpPool* pool,
+    const VkComputePipelineCreateInfo* from,
+    VkComputePipelineCreateInfo* 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));
+    }
+    deepcopy_VkPipelineShaderStageCreateInfo(pool, &from->stage, (VkPipelineShaderStageCreateInfo*)(&to->stage));
+}
+
 void deepcopy_VkVertexInputBindingDescription(
     BumpPool* pool,
     const VkVertexInputBindingDescription* from,
@@ -863,24 +1041,30 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pVertexBindingDescriptions = nullptr;
-    if (from->pVertexBindingDescriptions)
+    if ((from) != nullptr)
     {
-        to->pVertexBindingDescriptions = (VkVertexInputBindingDescription*)pool->alloc(from->vertexBindingDescriptionCount * sizeof(const VkVertexInputBindingDescription));
-        to->vertexBindingDescriptionCount = from->vertexBindingDescriptionCount;
-        for (uint32_t i = 0; i < (uint32_t)from->vertexBindingDescriptionCount; ++i)
+        to->pVertexBindingDescriptions = nullptr;
+        if (from->pVertexBindingDescriptions)
         {
-            deepcopy_VkVertexInputBindingDescription(pool, from->pVertexBindingDescriptions + i, (VkVertexInputBindingDescription*)(to->pVertexBindingDescriptions + i));
+            to->pVertexBindingDescriptions = (VkVertexInputBindingDescription*)pool->alloc(from->vertexBindingDescriptionCount * sizeof(const VkVertexInputBindingDescription));
+            to->vertexBindingDescriptionCount = from->vertexBindingDescriptionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->vertexBindingDescriptionCount; ++i)
+            {
+                deepcopy_VkVertexInputBindingDescription(pool, from->pVertexBindingDescriptions + i, (VkVertexInputBindingDescription*)(to->pVertexBindingDescriptions + i));
+            }
         }
     }
-    to->pVertexAttributeDescriptions = nullptr;
-    if (from->pVertexAttributeDescriptions)
+    if ((from) != nullptr)
     {
-        to->pVertexAttributeDescriptions = (VkVertexInputAttributeDescription*)pool->alloc(from->vertexAttributeDescriptionCount * sizeof(const VkVertexInputAttributeDescription));
-        to->vertexAttributeDescriptionCount = from->vertexAttributeDescriptionCount;
-        for (uint32_t i = 0; i < (uint32_t)from->vertexAttributeDescriptionCount; ++i)
+        to->pVertexAttributeDescriptions = nullptr;
+        if (from->pVertexAttributeDescriptions)
         {
-            deepcopy_VkVertexInputAttributeDescription(pool, from->pVertexAttributeDescriptions + i, (VkVertexInputAttributeDescription*)(to->pVertexAttributeDescriptions + i));
+            to->pVertexAttributeDescriptions = (VkVertexInputAttributeDescription*)pool->alloc(from->vertexAttributeDescriptionCount * sizeof(const VkVertexInputAttributeDescription));
+            to->vertexAttributeDescriptionCount = from->vertexAttributeDescriptionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->vertexAttributeDescriptionCount; ++i)
+            {
+                deepcopy_VkVertexInputAttributeDescription(pool, from->pVertexAttributeDescriptions + i, (VkVertexInputAttributeDescription*)(to->pVertexAttributeDescriptions + i));
+            }
         }
     }
 }
@@ -926,35 +1110,6 @@
     *to = *from;
 }
 
-void deepcopy_VkOffset2D(
-    BumpPool* pool,
-    const VkOffset2D* from,
-    VkOffset2D* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkExtent2D(
-    BumpPool* pool,
-    const VkExtent2D* from,
-    VkExtent2D* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkRect2D(
-    BumpPool* pool,
-    const VkRect2D* from,
-    VkRect2D* to)
-{
-    (void)pool;
-    *to = *from;
-    deepcopy_VkOffset2D(pool, &from->offset, (VkOffset2D*)(&to->offset));
-    deepcopy_VkExtent2D(pool, &from->extent, (VkExtent2D*)(&to->extent));
-}
-
 void deepcopy_VkPipelineViewportStateCreateInfo(
     BumpPool* pool,
     const VkPipelineViewportStateCreateInfo* from,
@@ -969,24 +1124,30 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pViewports = nullptr;
-    if (from->pViewports)
+    if ((from) != nullptr)
     {
-        to->pViewports = (VkViewport*)pool->alloc(from->viewportCount * sizeof(const VkViewport));
-        to->viewportCount = from->viewportCount;
-        for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
+        to->pViewports = nullptr;
+        if (from->pViewports)
         {
-            deepcopy_VkViewport(pool, from->pViewports + i, (VkViewport*)(to->pViewports + i));
+            to->pViewports = (VkViewport*)pool->alloc(from->viewportCount * sizeof(const VkViewport));
+            to->viewportCount = from->viewportCount;
+            for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
+            {
+                deepcopy_VkViewport(pool, from->pViewports + i, (VkViewport*)(to->pViewports + i));
+            }
         }
     }
-    to->pScissors = nullptr;
-    if (from->pScissors)
+    if ((from) != nullptr)
     {
-        to->pScissors = (VkRect2D*)pool->alloc(from->scissorCount * sizeof(const VkRect2D));
-        to->scissorCount = from->scissorCount;
-        for (uint32_t i = 0; i < (uint32_t)from->scissorCount; ++i)
+        to->pScissors = nullptr;
+        if (from->pScissors)
         {
-            deepcopy_VkRect2D(pool, from->pScissors + i, (VkRect2D*)(to->pScissors + i));
+            to->pScissors = (VkRect2D*)pool->alloc(from->scissorCount * sizeof(const VkRect2D));
+            to->scissorCount = from->scissorCount;
+            for (uint32_t i = 0; i < (uint32_t)from->scissorCount; ++i)
+            {
+                deepcopy_VkRect2D(pool, from->pScissors + i, (VkRect2D*)(to->pScissors + i));
+            }
         }
     }
 }
@@ -1078,14 +1239,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pAttachments = nullptr;
-    if (from->pAttachments)
+    if ((from) != nullptr)
     {
-        to->pAttachments = (VkPipelineColorBlendAttachmentState*)pool->alloc(from->attachmentCount * sizeof(const VkPipelineColorBlendAttachmentState));
-        to->attachmentCount = from->attachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
+        to->pAttachments = nullptr;
+        if (from->pAttachments)
         {
-            deepcopy_VkPipelineColorBlendAttachmentState(pool, from->pAttachments + i, (VkPipelineColorBlendAttachmentState*)(to->pAttachments + i));
+            to->pAttachments = (VkPipelineColorBlendAttachmentState*)pool->alloc(from->attachmentCount * sizeof(const VkPipelineColorBlendAttachmentState));
+            to->attachmentCount = from->attachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
+            {
+                deepcopy_VkPipelineColorBlendAttachmentState(pool, from->pAttachments + i, (VkPipelineColorBlendAttachmentState*)(to->pAttachments + i));
+            }
         }
     }
     memcpy(to->blendConstants, from->blendConstants, 4 * sizeof(float));
@@ -1126,14 +1290,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pStages = nullptr;
-    if (from->pStages)
+    if ((from) != nullptr)
     {
-        to->pStages = (VkPipelineShaderStageCreateInfo*)pool->alloc(from->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
-        to->stageCount = from->stageCount;
-        for (uint32_t i = 0; i < (uint32_t)from->stageCount; ++i)
+        to->pStages = nullptr;
+        if (from->pStages)
         {
-            deepcopy_VkPipelineShaderStageCreateInfo(pool, from->pStages + i, (VkPipelineShaderStageCreateInfo*)(to->pStages + i));
+            to->pStages = (VkPipelineShaderStageCreateInfo*)pool->alloc(from->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
+            to->stageCount = from->stageCount;
+            for (uint32_t i = 0; i < (uint32_t)from->stageCount; ++i)
+            {
+                deepcopy_VkPipelineShaderStageCreateInfo(pool, from->pStages + i, (VkPipelineShaderStageCreateInfo*)(to->pStages + i));
+            }
         }
     }
     to->pVertexInputState = nullptr;
@@ -1192,23 +1359,6 @@
     }
 }
 
-void deepcopy_VkComputePipelineCreateInfo(
-    BumpPool* pool,
-    const VkComputePipelineCreateInfo* from,
-    VkComputePipelineCreateInfo* 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));
-    }
-    deepcopy_VkPipelineShaderStageCreateInfo(pool, &from->stage, (VkPipelineShaderStageCreateInfo*)(&to->stage));
-}
-
 void deepcopy_VkPushConstantRange(
     BumpPool* pool,
     const VkPushConstantRange* from,
@@ -1237,14 +1387,17 @@
     {
         to->pSetLayouts = (VkDescriptorSetLayout*)pool->dupArray(from->pSetLayouts, from->setLayoutCount * sizeof(const VkDescriptorSetLayout));
     }
-    to->pPushConstantRanges = nullptr;
-    if (from->pPushConstantRanges)
+    if ((from) != nullptr)
     {
-        to->pPushConstantRanges = (VkPushConstantRange*)pool->alloc(from->pushConstantRangeCount * sizeof(const VkPushConstantRange));
-        to->pushConstantRangeCount = from->pushConstantRangeCount;
-        for (uint32_t i = 0; i < (uint32_t)from->pushConstantRangeCount; ++i)
+        to->pPushConstantRanges = nullptr;
+        if (from->pPushConstantRanges)
         {
-            deepcopy_VkPushConstantRange(pool, from->pPushConstantRanges + i, (VkPushConstantRange*)(to->pPushConstantRanges + i));
+            to->pPushConstantRanges = (VkPushConstantRange*)pool->alloc(from->pushConstantRangeCount * sizeof(const VkPushConstantRange));
+            to->pushConstantRangeCount = from->pushConstantRangeCount;
+            for (uint32_t i = 0; i < (uint32_t)from->pushConstantRangeCount; ++i)
+            {
+                deepcopy_VkPushConstantRange(pool, from->pPushConstantRanges + i, (VkPushConstantRange*)(to->pPushConstantRanges + i));
+            }
         }
     }
 }
@@ -1265,6 +1418,99 @@
     }
 }
 
+void deepcopy_VkCopyDescriptorSet(
+    BumpPool* pool,
+    const VkCopyDescriptorSet* from,
+    VkCopyDescriptorSet* 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));
+    }
+}
+
+void deepcopy_VkDescriptorBufferInfo(
+    BumpPool* pool,
+    const VkDescriptorBufferInfo* from,
+    VkDescriptorBufferInfo* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkDescriptorImageInfo(
+    BumpPool* pool,
+    const VkDescriptorImageInfo* from,
+    VkDescriptorImageInfo* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkDescriptorPoolSize(
+    BumpPool* pool,
+    const VkDescriptorPoolSize* from,
+    VkDescriptorPoolSize* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkDescriptorPoolCreateInfo(
+    BumpPool* pool,
+    const VkDescriptorPoolCreateInfo* from,
+    VkDescriptorPoolCreateInfo* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pPoolSizes = nullptr;
+        if (from->pPoolSizes)
+        {
+            to->pPoolSizes = (VkDescriptorPoolSize*)pool->alloc(from->poolSizeCount * sizeof(const VkDescriptorPoolSize));
+            to->poolSizeCount = from->poolSizeCount;
+            for (uint32_t i = 0; i < (uint32_t)from->poolSizeCount; ++i)
+            {
+                deepcopy_VkDescriptorPoolSize(pool, from->pPoolSizes + i, (VkDescriptorPoolSize*)(to->pPoolSizes + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkDescriptorSetAllocateInfo(
+    BumpPool* pool,
+    const VkDescriptorSetAllocateInfo* from,
+    VkDescriptorSetAllocateInfo* 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->pSetLayouts = nullptr;
+    if (from->pSetLayouts)
+    {
+        to->pSetLayouts = (VkDescriptorSetLayout*)pool->dupArray(from->pSetLayouts, from->descriptorSetCount * sizeof(const VkDescriptorSetLayout));
+    }
+}
+
 void deepcopy_VkDescriptorSetLayoutBinding(
     BumpPool* pool,
     const VkDescriptorSetLayoutBinding* from,
@@ -1293,92 +1539,21 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pBindings = nullptr;
-    if (from->pBindings)
+    if ((from) != nullptr)
     {
-        to->pBindings = (VkDescriptorSetLayoutBinding*)pool->alloc(from->bindingCount * sizeof(const VkDescriptorSetLayoutBinding));
-        to->bindingCount = from->bindingCount;
-        for (uint32_t i = 0; i < (uint32_t)from->bindingCount; ++i)
+        to->pBindings = nullptr;
+        if (from->pBindings)
         {
-            deepcopy_VkDescriptorSetLayoutBinding(pool, from->pBindings + i, (VkDescriptorSetLayoutBinding*)(to->pBindings + i));
+            to->pBindings = (VkDescriptorSetLayoutBinding*)pool->alloc(from->bindingCount * sizeof(const VkDescriptorSetLayoutBinding));
+            to->bindingCount = from->bindingCount;
+            for (uint32_t i = 0; i < (uint32_t)from->bindingCount; ++i)
+            {
+                deepcopy_VkDescriptorSetLayoutBinding(pool, from->pBindings + i, (VkDescriptorSetLayoutBinding*)(to->pBindings + i));
+            }
         }
     }
 }
 
-void deepcopy_VkDescriptorPoolSize(
-    BumpPool* pool,
-    const VkDescriptorPoolSize* from,
-    VkDescriptorPoolSize* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkDescriptorPoolCreateInfo(
-    BumpPool* pool,
-    const VkDescriptorPoolCreateInfo* from,
-    VkDescriptorPoolCreateInfo* 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->pPoolSizes = nullptr;
-    if (from->pPoolSizes)
-    {
-        to->pPoolSizes = (VkDescriptorPoolSize*)pool->alloc(from->poolSizeCount * sizeof(const VkDescriptorPoolSize));
-        to->poolSizeCount = from->poolSizeCount;
-        for (uint32_t i = 0; i < (uint32_t)from->poolSizeCount; ++i)
-        {
-            deepcopy_VkDescriptorPoolSize(pool, from->pPoolSizes + i, (VkDescriptorPoolSize*)(to->pPoolSizes + i));
-        }
-    }
-}
-
-void deepcopy_VkDescriptorSetAllocateInfo(
-    BumpPool* pool,
-    const VkDescriptorSetAllocateInfo* from,
-    VkDescriptorSetAllocateInfo* 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->pSetLayouts = nullptr;
-    if (from->pSetLayouts)
-    {
-        to->pSetLayouts = (VkDescriptorSetLayout*)pool->dupArray(from->pSetLayouts, from->descriptorSetCount * sizeof(const VkDescriptorSetLayout));
-    }
-}
-
-void deepcopy_VkDescriptorImageInfo(
-    BumpPool* pool,
-    const VkDescriptorImageInfo* from,
-    VkDescriptorImageInfo* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkDescriptorBufferInfo(
-    BumpPool* pool,
-    const VkDescriptorBufferInfo* from,
-    VkDescriptorBufferInfo* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
 void deepcopy_VkWriteDescriptorSet(
     BumpPool* pool,
     const VkWriteDescriptorSet* from,
@@ -1393,24 +1568,30 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pImageInfo = nullptr;
-    if (from->pImageInfo)
+    if ((from) != nullptr)
     {
-        to->pImageInfo = (VkDescriptorImageInfo*)pool->alloc(from->descriptorCount * sizeof(const VkDescriptorImageInfo));
-        to->descriptorCount = from->descriptorCount;
-        for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i)
+        to->pImageInfo = nullptr;
+        if (from->pImageInfo)
         {
-            deepcopy_VkDescriptorImageInfo(pool, from->pImageInfo + i, (VkDescriptorImageInfo*)(to->pImageInfo + i));
+            to->pImageInfo = (VkDescriptorImageInfo*)pool->alloc(from->descriptorCount * sizeof(const VkDescriptorImageInfo));
+            to->descriptorCount = from->descriptorCount;
+            for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i)
+            {
+                deepcopy_VkDescriptorImageInfo(pool, from->pImageInfo + i, (VkDescriptorImageInfo*)(to->pImageInfo + i));
+            }
         }
     }
-    to->pBufferInfo = nullptr;
-    if (from->pBufferInfo)
+    if ((from) != nullptr)
     {
-        to->pBufferInfo = (VkDescriptorBufferInfo*)pool->alloc(from->descriptorCount * sizeof(const VkDescriptorBufferInfo));
-        to->descriptorCount = from->descriptorCount;
-        for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i)
+        to->pBufferInfo = nullptr;
+        if (from->pBufferInfo)
         {
-            deepcopy_VkDescriptorBufferInfo(pool, from->pBufferInfo + i, (VkDescriptorBufferInfo*)(to->pBufferInfo + i));
+            to->pBufferInfo = (VkDescriptorBufferInfo*)pool->alloc(from->descriptorCount * sizeof(const VkDescriptorBufferInfo));
+            to->descriptorCount = from->descriptorCount;
+            for (uint32_t i = 0; i < (uint32_t)from->descriptorCount; ++i)
+            {
+                deepcopy_VkDescriptorBufferInfo(pool, from->pBufferInfo + i, (VkDescriptorBufferInfo*)(to->pBufferInfo + i));
+            }
         }
     }
     to->pTexelBufferView = nullptr;
@@ -1420,20 +1601,22 @@
     }
 }
 
-void deepcopy_VkCopyDescriptorSet(
+void deepcopy_VkAttachmentDescription(
     BumpPool* pool,
-    const VkCopyDescriptorSet* from,
-    VkCopyDescriptorSet* to)
+    const VkAttachmentDescription* from,
+    VkAttachmentDescription* 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));
-    }
+}
+
+void deepcopy_VkAttachmentReference(
+    BumpPool* pool,
+    const VkAttachmentReference* from,
+    VkAttachmentReference* to)
+{
+    (void)pool;
+    *to = *from;
 }
 
 void deepcopy_VkFramebufferCreateInfo(
@@ -1457,24 +1640,6 @@
     }
 }
 
-void deepcopy_VkAttachmentDescription(
-    BumpPool* pool,
-    const VkAttachmentDescription* from,
-    VkAttachmentDescription* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkAttachmentReference(
-    BumpPool* pool,
-    const VkAttachmentReference* from,
-    VkAttachmentReference* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
 void deepcopy_VkSubpassDescription(
     BumpPool* pool,
     const VkSubpassDescription* from,
@@ -1482,34 +1647,43 @@
 {
     (void)pool;
     *to = *from;
-    to->pInputAttachments = nullptr;
-    if (from->pInputAttachments)
+    if ((from) != nullptr)
     {
-        to->pInputAttachments = (VkAttachmentReference*)pool->alloc(from->inputAttachmentCount * sizeof(const VkAttachmentReference));
-        to->inputAttachmentCount = from->inputAttachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i)
+        to->pInputAttachments = nullptr;
+        if (from->pInputAttachments)
         {
-            deepcopy_VkAttachmentReference(pool, from->pInputAttachments + i, (VkAttachmentReference*)(to->pInputAttachments + i));
+            to->pInputAttachments = (VkAttachmentReference*)pool->alloc(from->inputAttachmentCount * sizeof(const VkAttachmentReference));
+            to->inputAttachmentCount = from->inputAttachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentReference(pool, from->pInputAttachments + i, (VkAttachmentReference*)(to->pInputAttachments + i));
+            }
         }
     }
-    to->pColorAttachments = nullptr;
-    if (from->pColorAttachments)
+    if ((from) != nullptr)
     {
-        to->pColorAttachments = (VkAttachmentReference*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference));
-        to->colorAttachmentCount = from->colorAttachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
+        to->pColorAttachments = nullptr;
+        if (from->pColorAttachments)
         {
-            deepcopy_VkAttachmentReference(pool, from->pColorAttachments + i, (VkAttachmentReference*)(to->pColorAttachments + i));
+            to->pColorAttachments = (VkAttachmentReference*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference));
+            to->colorAttachmentCount = from->colorAttachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentReference(pool, from->pColorAttachments + i, (VkAttachmentReference*)(to->pColorAttachments + i));
+            }
         }
     }
-    to->pResolveAttachments = nullptr;
-    if (from->pResolveAttachments)
+    if ((from) != nullptr)
     {
-        to->pResolveAttachments = (VkAttachmentReference*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference));
-        to->colorAttachmentCount = from->colorAttachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
+        to->pResolveAttachments = nullptr;
+        if (from->pResolveAttachments)
         {
-            deepcopy_VkAttachmentReference(pool, from->pResolveAttachments + i, (VkAttachmentReference*)(to->pResolveAttachments + i));
+            to->pResolveAttachments = (VkAttachmentReference*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference));
+            to->colorAttachmentCount = from->colorAttachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentReference(pool, from->pResolveAttachments + i, (VkAttachmentReference*)(to->pResolveAttachments + i));
+            }
         }
     }
     to->pDepthStencilAttachment = nullptr;
@@ -1548,34 +1722,43 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pAttachments = nullptr;
-    if (from->pAttachments)
+    if ((from) != nullptr)
     {
-        to->pAttachments = (VkAttachmentDescription*)pool->alloc(from->attachmentCount * sizeof(const VkAttachmentDescription));
-        to->attachmentCount = from->attachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
+        to->pAttachments = nullptr;
+        if (from->pAttachments)
         {
-            deepcopy_VkAttachmentDescription(pool, from->pAttachments + i, (VkAttachmentDescription*)(to->pAttachments + i));
+            to->pAttachments = (VkAttachmentDescription*)pool->alloc(from->attachmentCount * sizeof(const VkAttachmentDescription));
+            to->attachmentCount = from->attachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentDescription(pool, from->pAttachments + i, (VkAttachmentDescription*)(to->pAttachments + i));
+            }
         }
     }
-    to->pSubpasses = nullptr;
-    if (from->pSubpasses)
+    if ((from) != nullptr)
     {
-        to->pSubpasses = (VkSubpassDescription*)pool->alloc(from->subpassCount * sizeof(const VkSubpassDescription));
-        to->subpassCount = from->subpassCount;
-        for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i)
+        to->pSubpasses = nullptr;
+        if (from->pSubpasses)
         {
-            deepcopy_VkSubpassDescription(pool, from->pSubpasses + i, (VkSubpassDescription*)(to->pSubpasses + i));
+            to->pSubpasses = (VkSubpassDescription*)pool->alloc(from->subpassCount * sizeof(const VkSubpassDescription));
+            to->subpassCount = from->subpassCount;
+            for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i)
+            {
+                deepcopy_VkSubpassDescription(pool, from->pSubpasses + i, (VkSubpassDescription*)(to->pSubpasses + i));
+            }
         }
     }
-    to->pDependencies = nullptr;
-    if (from->pDependencies)
+    if ((from) != nullptr)
     {
-        to->pDependencies = (VkSubpassDependency*)pool->alloc(from->dependencyCount * sizeof(const VkSubpassDependency));
-        to->dependencyCount = from->dependencyCount;
-        for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i)
+        to->pDependencies = nullptr;
+        if (from->pDependencies)
         {
-            deepcopy_VkSubpassDependency(pool, from->pDependencies + i, (VkSubpassDependency*)(to->pDependencies + i));
+            to->pDependencies = (VkSubpassDependency*)pool->alloc(from->dependencyCount * sizeof(const VkSubpassDependency));
+            to->dependencyCount = from->dependencyCount;
+            for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i)
+            {
+                deepcopy_VkSubpassDependency(pool, from->pDependencies + i, (VkSubpassDependency*)(to->pDependencies + i));
+            }
         }
     }
 }
@@ -1668,39 +1851,6 @@
     *to = *from;
 }
 
-void deepcopy_VkImageCopy(
-    BumpPool* pool,
-    const VkImageCopy* from,
-    VkImageCopy* to)
-{
-    (void)pool;
-    *to = *from;
-    deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
-    deepcopy_VkOffset3D(pool, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
-    deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
-    deepcopy_VkOffset3D(pool, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
-    deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
-}
-
-void deepcopy_VkImageBlit(
-    BumpPool* pool,
-    const VkImageBlit* from,
-    VkImageBlit* to)
-{
-    (void)pool;
-    *to = *from;
-    deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        deepcopy_VkOffset3D(pool, from->srcOffsets + i, (VkOffset3D*)(to->srcOffsets + i));
-    }
-    deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        deepcopy_VkOffset3D(pool, from->dstOffsets + i, (VkOffset3D*)(to->dstOffsets + i));
-    }
-}
-
 void deepcopy_VkBufferImageCopy(
     BumpPool* pool,
     const VkBufferImageCopy* from,
@@ -1765,6 +1915,39 @@
     deepcopy_VkRect2D(pool, &from->rect, (VkRect2D*)(&to->rect));
 }
 
+void deepcopy_VkImageBlit(
+    BumpPool* pool,
+    const VkImageBlit* from,
+    VkImageBlit* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        deepcopy_VkOffset3D(pool, from->srcOffsets + i, (VkOffset3D*)(to->srcOffsets + i));
+    }
+    deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        deepcopy_VkOffset3D(pool, from->dstOffsets + i, (VkOffset3D*)(to->dstOffsets + i));
+    }
+}
+
+void deepcopy_VkImageCopy(
+    BumpPool* pool,
+    const VkImageCopy* from,
+    VkImageCopy* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
+    deepcopy_VkOffset3D(pool, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
+    deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
+    deepcopy_VkOffset3D(pool, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
+    deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
+}
+
 void deepcopy_VkImageResolve(
     BumpPool* pool,
     const VkImageResolve* from,
@@ -1779,55 +1962,6 @@
     deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
 }
 
-void deepcopy_VkMemoryBarrier(
-    BumpPool* pool,
-    const VkMemoryBarrier* from,
-    VkMemoryBarrier* 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));
-    }
-}
-
-void deepcopy_VkBufferMemoryBarrier(
-    BumpPool* pool,
-    const VkBufferMemoryBarrier* from,
-    VkBufferMemoryBarrier* 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));
-    }
-}
-
-void deepcopy_VkImageMemoryBarrier(
-    BumpPool* pool,
-    const VkImageMemoryBarrier* from,
-    VkImageMemoryBarrier* 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));
-    }
-    deepcopy_VkImageSubresourceRange(pool, &from->subresourceRange, (VkImageSubresourceRange*)(&to->subresourceRange));
-}
-
 void deepcopy_VkRenderPassBeginInfo(
     BumpPool* pool,
     const VkRenderPassBeginInfo* from,
@@ -1843,77 +1977,21 @@
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
     deepcopy_VkRect2D(pool, &from->renderArea, (VkRect2D*)(&to->renderArea));
-    to->pClearValues = nullptr;
-    if (from->pClearValues)
+    if ((from) != nullptr)
     {
-        to->pClearValues = (VkClearValue*)pool->alloc(from->clearValueCount * sizeof(const VkClearValue));
-        to->clearValueCount = from->clearValueCount;
-        for (uint32_t i = 0; i < (uint32_t)from->clearValueCount; ++i)
+        to->pClearValues = nullptr;
+        if (from->pClearValues)
         {
-            deepcopy_VkClearValue(pool, from->pClearValues + i, (VkClearValue*)(to->pClearValues + i));
+            to->pClearValues = (VkClearValue*)pool->alloc(from->clearValueCount * sizeof(const VkClearValue));
+            to->clearValueCount = from->clearValueCount;
+            for (uint32_t i = 0; i < (uint32_t)from->clearValueCount; ++i)
+            {
+                deepcopy_VkClearValue(pool, from->pClearValues + i, (VkClearValue*)(to->pClearValues + i));
+            }
         }
     }
 }
 
-void deepcopy_VkDispatchIndirectCommand(
-    BumpPool* pool,
-    const VkDispatchIndirectCommand* from,
-    VkDispatchIndirectCommand* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkDrawIndexedIndirectCommand(
-    BumpPool* pool,
-    const VkDrawIndexedIndirectCommand* from,
-    VkDrawIndexedIndirectCommand* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkDrawIndirectCommand(
-    BumpPool* pool,
-    const VkDrawIndirectCommand* from,
-    VkDrawIndirectCommand* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkBaseOutStructure(
-    BumpPool* pool,
-    const VkBaseOutStructure* from,
-    VkBaseOutStructure* to)
-{
-    (void)pool;
-    *to = *from;
-    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
-    to->pNext = nullptr;
-    if (pNext_size)
-    {
-        to->pNext = (VkBaseOutStructure*)pool->alloc(pNext_size);
-        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
-    }
-}
-
-void deepcopy_VkBaseInStructure(
-    BumpPool* pool,
-    const VkBaseInStructure* from,
-    VkBaseInStructure* 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 VkBaseInStructure*)pool->alloc(pNext_size);
-        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
-    }
-}
-
 #endif
 #ifdef VK_VERSION_1_1
 void deepcopy_VkPhysicalDeviceSubgroupProperties(
@@ -2042,14 +2120,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pDeviceRenderAreas = nullptr;
-    if (from->pDeviceRenderAreas)
+    if ((from) != nullptr)
     {
-        to->pDeviceRenderAreas = (VkRect2D*)pool->alloc(from->deviceRenderAreaCount * sizeof(const VkRect2D));
-        to->deviceRenderAreaCount = from->deviceRenderAreaCount;
-        for (uint32_t i = 0; i < (uint32_t)from->deviceRenderAreaCount; ++i)
+        to->pDeviceRenderAreas = nullptr;
+        if (from->pDeviceRenderAreas)
         {
-            deepcopy_VkRect2D(pool, from->pDeviceRenderAreas + i, (VkRect2D*)(to->pDeviceRenderAreas + i));
+            to->pDeviceRenderAreas = (VkRect2D*)pool->alloc(from->deviceRenderAreaCount * sizeof(const VkRect2D));
+            to->deviceRenderAreaCount = from->deviceRenderAreaCount;
+            for (uint32_t i = 0; i < (uint32_t)from->deviceRenderAreaCount; ++i)
+            {
+                deepcopy_VkRect2D(pool, from->pDeviceRenderAreas + i, (VkRect2D*)(to->pDeviceRenderAreas + i));
+            }
         }
     }
 }
@@ -2157,14 +2238,17 @@
     {
         to->pDeviceIndices = (uint32_t*)pool->dupArray(from->pDeviceIndices, from->deviceIndexCount * sizeof(const uint32_t));
     }
-    to->pSplitInstanceBindRegions = nullptr;
-    if (from->pSplitInstanceBindRegions)
+    if ((from) != nullptr)
     {
-        to->pSplitInstanceBindRegions = (VkRect2D*)pool->alloc(from->splitInstanceBindRegionCount * sizeof(const VkRect2D));
-        to->splitInstanceBindRegionCount = from->splitInstanceBindRegionCount;
-        for (uint32_t i = 0; i < (uint32_t)from->splitInstanceBindRegionCount; ++i)
+        to->pSplitInstanceBindRegions = nullptr;
+        if (from->pSplitInstanceBindRegions)
         {
-            deepcopy_VkRect2D(pool, from->pSplitInstanceBindRegions + i, (VkRect2D*)(to->pSplitInstanceBindRegions + i));
+            to->pSplitInstanceBindRegions = (VkRect2D*)pool->alloc(from->splitInstanceBindRegionCount * sizeof(const VkRect2D));
+            to->splitInstanceBindRegionCount = from->splitInstanceBindRegionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->splitInstanceBindRegionCount; ++i)
+            {
+                deepcopy_VkRect2D(pool, from->pSplitInstanceBindRegions + i, (VkRect2D*)(to->pSplitInstanceBindRegions + i));
+            }
         }
     }
 }
@@ -2479,14 +2563,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pAspectReferences = nullptr;
-    if (from->pAspectReferences)
+    if ((from) != nullptr)
     {
-        to->pAspectReferences = (VkInputAttachmentAspectReference*)pool->alloc(from->aspectReferenceCount * sizeof(const VkInputAttachmentAspectReference));
-        to->aspectReferenceCount = from->aspectReferenceCount;
-        for (uint32_t i = 0; i < (uint32_t)from->aspectReferenceCount; ++i)
+        to->pAspectReferences = nullptr;
+        if (from->pAspectReferences)
         {
-            deepcopy_VkInputAttachmentAspectReference(pool, from->pAspectReferences + i, (VkInputAttachmentAspectReference*)(to->pAspectReferences + i));
+            to->pAspectReferences = (VkInputAttachmentAspectReference*)pool->alloc(from->aspectReferenceCount * sizeof(const VkInputAttachmentAspectReference));
+            to->aspectReferenceCount = from->aspectReferenceCount;
+            for (uint32_t i = 0; i < (uint32_t)from->aspectReferenceCount; ++i)
+            {
+                deepcopy_VkInputAttachmentAspectReference(pool, from->pAspectReferences + i, (VkInputAttachmentAspectReference*)(to->pAspectReferences + i));
+            }
         }
     }
 }
@@ -2586,10 +2673,10 @@
     }
 }
 
-void deepcopy_VkPhysicalDeviceVariablePointerFeatures(
+void deepcopy_VkPhysicalDeviceVariablePointersFeatures(
     BumpPool* pool,
-    const VkPhysicalDeviceVariablePointerFeatures* from,
-    VkPhysicalDeviceVariablePointerFeatures* to)
+    const VkPhysicalDeviceVariablePointersFeatures* from,
+    VkPhysicalDeviceVariablePointersFeatures* to)
 {
     (void)pool;
     *to = *from;
@@ -2783,17 +2870,20 @@
     to->pNext = nullptr;
     if (pNext_size)
     {
-        to->pNext = (void*)pool->alloc(pNext_size);
+        to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pDescriptorUpdateEntries = nullptr;
-    if (from->pDescriptorUpdateEntries)
+    if ((from) != nullptr)
     {
-        to->pDescriptorUpdateEntries = (VkDescriptorUpdateTemplateEntry*)pool->alloc(from->descriptorUpdateEntryCount * sizeof(const VkDescriptorUpdateTemplateEntry));
-        to->descriptorUpdateEntryCount = from->descriptorUpdateEntryCount;
-        for (uint32_t i = 0; i < (uint32_t)from->descriptorUpdateEntryCount; ++i)
+        to->pDescriptorUpdateEntries = nullptr;
+        if (from->pDescriptorUpdateEntries)
         {
-            deepcopy_VkDescriptorUpdateTemplateEntry(pool, from->pDescriptorUpdateEntries + i, (VkDescriptorUpdateTemplateEntry*)(to->pDescriptorUpdateEntries + i));
+            to->pDescriptorUpdateEntries = (VkDescriptorUpdateTemplateEntry*)pool->alloc(from->descriptorUpdateEntryCount * sizeof(const VkDescriptorUpdateTemplateEntry));
+            to->descriptorUpdateEntryCount = from->descriptorUpdateEntryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->descriptorUpdateEntryCount; ++i)
+            {
+                deepcopy_VkDescriptorUpdateTemplateEntry(pool, from->pDescriptorUpdateEntries + i, (VkDescriptorUpdateTemplateEntry*)(to->pDescriptorUpdateEntries + i));
+            }
         }
     }
 }
@@ -3068,10 +3158,10 @@
     }
 }
 
-void deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures(
+void deepcopy_VkPhysicalDeviceShaderDrawParametersFeatures(
     BumpPool* pool,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* from,
-    VkPhysicalDeviceShaderDrawParameterFeatures* to)
+    const VkPhysicalDeviceShaderDrawParametersFeatures* from,
+    VkPhysicalDeviceShaderDrawParametersFeatures* to)
 {
     (void)pool;
     *to = *from;
@@ -3085,6 +3175,984 @@
 }
 
 #endif
+#ifdef VK_VERSION_1_2
+void deepcopy_VkPhysicalDeviceVulkan11Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan11Features* from,
+    VkPhysicalDeviceVulkan11Features* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceVulkan11Properties(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan11Properties* from,
+    VkPhysicalDeviceVulkan11Properties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->deviceUUID, from->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    memcpy(to->driverUUID, from->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    memcpy(to->deviceLUID, from->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
+}
+
+void deepcopy_VkPhysicalDeviceVulkan12Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan12Features* from,
+    VkPhysicalDeviceVulkan12Features* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkConformanceVersion(
+    BumpPool* pool,
+    const VkConformanceVersion* from,
+    VkConformanceVersion* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkPhysicalDeviceVulkan12Properties(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan12Properties* from,
+    VkPhysicalDeviceVulkan12Properties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->driverName, from->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    memcpy(to->driverInfo, from->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    deepcopy_VkConformanceVersion(pool, &from->conformanceVersion, (VkConformanceVersion*)(&to->conformanceVersion));
+}
+
+void deepcopy_VkImageFormatListCreateInfo(
+    BumpPool* pool,
+    const VkImageFormatListCreateInfo* from,
+    VkImageFormatListCreateInfo* 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->pViewFormats = nullptr;
+    if (from->pViewFormats)
+    {
+        to->pViewFormats = (VkFormat*)pool->dupArray(from->pViewFormats, from->viewFormatCount * sizeof(const VkFormat));
+    }
+}
+
+void deepcopy_VkAttachmentDescription2(
+    BumpPool* pool,
+    const VkAttachmentDescription2* from,
+    VkAttachmentDescription2* 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));
+    }
+}
+
+void deepcopy_VkAttachmentReference2(
+    BumpPool* pool,
+    const VkAttachmentReference2* from,
+    VkAttachmentReference2* 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));
+    }
+}
+
+void deepcopy_VkSubpassDescription2(
+    BumpPool* pool,
+    const VkSubpassDescription2* from,
+    VkSubpassDescription2* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pInputAttachments = nullptr;
+        if (from->pInputAttachments)
+        {
+            to->pInputAttachments = (VkAttachmentReference2*)pool->alloc(from->inputAttachmentCount * sizeof(const VkAttachmentReference2));
+            to->inputAttachmentCount = from->inputAttachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentReference2(pool, from->pInputAttachments + i, (VkAttachmentReference2*)(to->pInputAttachments + i));
+            }
+        }
+    }
+    if ((from) != nullptr)
+    {
+        to->pColorAttachments = nullptr;
+        if (from->pColorAttachments)
+        {
+            to->pColorAttachments = (VkAttachmentReference2*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference2));
+            to->colorAttachmentCount = from->colorAttachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentReference2(pool, from->pColorAttachments + i, (VkAttachmentReference2*)(to->pColorAttachments + i));
+            }
+        }
+    }
+    if ((from) != nullptr)
+    {
+        to->pResolveAttachments = nullptr;
+        if (from->pResolveAttachments)
+        {
+            to->pResolveAttachments = (VkAttachmentReference2*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference2));
+            to->colorAttachmentCount = from->colorAttachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentReference2(pool, from->pResolveAttachments + i, (VkAttachmentReference2*)(to->pResolveAttachments + i));
+            }
+        }
+    }
+    to->pDepthStencilAttachment = nullptr;
+    if (from->pDepthStencilAttachment)
+    {
+        to->pDepthStencilAttachment = (VkAttachmentReference2*)pool->alloc(sizeof(const VkAttachmentReference2));
+        deepcopy_VkAttachmentReference2(pool, from->pDepthStencilAttachment, (VkAttachmentReference2*)(to->pDepthStencilAttachment));
+    }
+    to->pPreserveAttachments = nullptr;
+    if (from->pPreserveAttachments)
+    {
+        to->pPreserveAttachments = (uint32_t*)pool->dupArray(from->pPreserveAttachments, from->preserveAttachmentCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkSubpassDependency2(
+    BumpPool* pool,
+    const VkSubpassDependency2* from,
+    VkSubpassDependency2* 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));
+    }
+}
+
+void deepcopy_VkRenderPassCreateInfo2(
+    BumpPool* pool,
+    const VkRenderPassCreateInfo2* from,
+    VkRenderPassCreateInfo2* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pAttachments = nullptr;
+        if (from->pAttachments)
+        {
+            to->pAttachments = (VkAttachmentDescription2*)pool->alloc(from->attachmentCount * sizeof(const VkAttachmentDescription2));
+            to->attachmentCount = from->attachmentCount;
+            for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
+            {
+                deepcopy_VkAttachmentDescription2(pool, from->pAttachments + i, (VkAttachmentDescription2*)(to->pAttachments + i));
+            }
+        }
+    }
+    if ((from) != nullptr)
+    {
+        to->pSubpasses = nullptr;
+        if (from->pSubpasses)
+        {
+            to->pSubpasses = (VkSubpassDescription2*)pool->alloc(from->subpassCount * sizeof(const VkSubpassDescription2));
+            to->subpassCount = from->subpassCount;
+            for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i)
+            {
+                deepcopy_VkSubpassDescription2(pool, from->pSubpasses + i, (VkSubpassDescription2*)(to->pSubpasses + i));
+            }
+        }
+    }
+    if ((from) != nullptr)
+    {
+        to->pDependencies = nullptr;
+        if (from->pDependencies)
+        {
+            to->pDependencies = (VkSubpassDependency2*)pool->alloc(from->dependencyCount * sizeof(const VkSubpassDependency2));
+            to->dependencyCount = from->dependencyCount;
+            for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i)
+            {
+                deepcopy_VkSubpassDependency2(pool, from->pDependencies + i, (VkSubpassDependency2*)(to->pDependencies + i));
+            }
+        }
+    }
+    to->pCorrelatedViewMasks = nullptr;
+    if (from->pCorrelatedViewMasks)
+    {
+        to->pCorrelatedViewMasks = (uint32_t*)pool->dupArray(from->pCorrelatedViewMasks, from->correlatedViewMaskCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkSubpassBeginInfo(
+    BumpPool* pool,
+    const VkSubpassBeginInfo* from,
+    VkSubpassBeginInfo* 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));
+    }
+}
+
+void deepcopy_VkSubpassEndInfo(
+    BumpPool* pool,
+    const VkSubpassEndInfo* from,
+    VkSubpassEndInfo* 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));
+    }
+}
+
+void deepcopy_VkPhysicalDevice8BitStorageFeatures(
+    BumpPool* pool,
+    const VkPhysicalDevice8BitStorageFeatures* from,
+    VkPhysicalDevice8BitStorageFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceDriverProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceDriverProperties* from,
+    VkPhysicalDeviceDriverProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->driverName, from->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    memcpy(to->driverInfo, from->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    deepcopy_VkConformanceVersion(pool, &from->conformanceVersion, (VkConformanceVersion*)(&to->conformanceVersion));
+}
+
+void deepcopy_VkPhysicalDeviceShaderAtomicInt64Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderAtomicInt64Features* from,
+    VkPhysicalDeviceShaderAtomicInt64Features* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderFloat16Int8Features* from,
+    VkPhysicalDeviceShaderFloat16Int8Features* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceFloatControlsProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceFloatControlsProperties* from,
+    VkPhysicalDeviceFloatControlsProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    BumpPool* pool,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* from,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* 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->pBindingFlags = nullptr;
+    if (from->pBindingFlags)
+    {
+        to->pBindingFlags = (VkDescriptorBindingFlags*)pool->dupArray(from->pBindingFlags, from->bindingCount * sizeof(const VkDescriptorBindingFlags));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceDescriptorIndexingFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* from,
+    VkPhysicalDeviceDescriptorIndexingFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceDescriptorIndexingProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceDescriptorIndexingProperties* from,
+    VkPhysicalDeviceDescriptorIndexingProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    BumpPool* pool,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* from,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* 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->pDescriptorCounts = nullptr;
+    if (from->pDescriptorCounts)
+    {
+        to->pDescriptorCounts = (uint32_t*)pool->dupArray(from->pDescriptorCounts, from->descriptorSetCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    BumpPool* pool,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* from,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSubpassDescriptionDepthStencilResolve(
+    BumpPool* pool,
+    const VkSubpassDescriptionDepthStencilResolve* from,
+    VkSubpassDescriptionDepthStencilResolve* 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->pDepthStencilResolveAttachment = nullptr;
+    if (from->pDepthStencilResolveAttachment)
+    {
+        to->pDepthStencilResolveAttachment = (VkAttachmentReference2*)pool->alloc(sizeof(const VkAttachmentReference2));
+        deepcopy_VkAttachmentReference2(pool, from->pDepthStencilResolveAttachment, (VkAttachmentReference2*)(to->pDepthStencilResolveAttachment));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceDepthStencilResolveProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceDepthStencilResolveProperties* from,
+    VkPhysicalDeviceDepthStencilResolveProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* from,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkImageStencilUsageCreateInfo(
+    BumpPool* pool,
+    const VkImageStencilUsageCreateInfo* from,
+    VkImageStencilUsageCreateInfo* 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));
+    }
+}
+
+void deepcopy_VkSamplerReductionModeCreateInfo(
+    BumpPool* pool,
+    const VkSamplerReductionModeCreateInfo* from,
+    VkSamplerReductionModeCreateInfo* 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));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* from,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* from,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceImagelessFramebufferFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* from,
+    VkPhysicalDeviceImagelessFramebufferFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkFramebufferAttachmentImageInfo(
+    BumpPool* pool,
+    const VkFramebufferAttachmentImageInfo* from,
+    VkFramebufferAttachmentImageInfo* 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->pViewFormats = nullptr;
+    if (from->pViewFormats)
+    {
+        to->pViewFormats = (VkFormat*)pool->dupArray(from->pViewFormats, from->viewFormatCount * sizeof(const VkFormat));
+    }
+}
+
+void deepcopy_VkFramebufferAttachmentsCreateInfo(
+    BumpPool* pool,
+    const VkFramebufferAttachmentsCreateInfo* from,
+    VkFramebufferAttachmentsCreateInfo* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pAttachmentImageInfos = nullptr;
+        if (from->pAttachmentImageInfos)
+        {
+            to->pAttachmentImageInfos = (VkFramebufferAttachmentImageInfo*)pool->alloc(from->attachmentImageInfoCount * sizeof(const VkFramebufferAttachmentImageInfo));
+            to->attachmentImageInfoCount = from->attachmentImageInfoCount;
+            for (uint32_t i = 0; i < (uint32_t)from->attachmentImageInfoCount; ++i)
+            {
+                deepcopy_VkFramebufferAttachmentImageInfo(pool, from->pAttachmentImageInfos + i, (VkFramebufferAttachmentImageInfo*)(to->pAttachmentImageInfos + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkRenderPassAttachmentBeginInfo(
+    BumpPool* pool,
+    const VkRenderPassAttachmentBeginInfo* from,
+    VkRenderPassAttachmentBeginInfo* 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->pAttachments = nullptr;
+    if (from->pAttachments)
+    {
+        to->pAttachments = (VkImageView*)pool->dupArray(from->pAttachments, from->attachmentCount * sizeof(const VkImageView));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* from,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* from,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* from,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkAttachmentReferenceStencilLayout(
+    BumpPool* pool,
+    const VkAttachmentReferenceStencilLayout* from,
+    VkAttachmentReferenceStencilLayout* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkAttachmentDescriptionStencilLayout(
+    BumpPool* pool,
+    const VkAttachmentDescriptionStencilLayout* from,
+    VkAttachmentDescriptionStencilLayout* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceHostQueryResetFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceHostQueryResetFeatures* from,
+    VkPhysicalDeviceHostQueryResetFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* from,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceTimelineSemaphoreProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* from,
+    VkPhysicalDeviceTimelineSemaphoreProperties* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSemaphoreTypeCreateInfo(
+    BumpPool* pool,
+    const VkSemaphoreTypeCreateInfo* from,
+    VkSemaphoreTypeCreateInfo* 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));
+    }
+}
+
+void deepcopy_VkTimelineSemaphoreSubmitInfo(
+    BumpPool* pool,
+    const VkTimelineSemaphoreSubmitInfo* from,
+    VkTimelineSemaphoreSubmitInfo* 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->pWaitSemaphoreValues = nullptr;
+    if (from->pWaitSemaphoreValues)
+    {
+        to->pWaitSemaphoreValues = (uint64_t*)pool->dupArray(from->pWaitSemaphoreValues, from->waitSemaphoreValueCount * sizeof(const uint64_t));
+    }
+    to->pSignalSemaphoreValues = nullptr;
+    if (from->pSignalSemaphoreValues)
+    {
+        to->pSignalSemaphoreValues = (uint64_t*)pool->dupArray(from->pSignalSemaphoreValues, from->signalSemaphoreValueCount * sizeof(const uint64_t));
+    }
+}
+
+void deepcopy_VkSemaphoreWaitInfo(
+    BumpPool* pool,
+    const VkSemaphoreWaitInfo* from,
+    VkSemaphoreWaitInfo* 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->pSemaphores = nullptr;
+    if (from->pSemaphores)
+    {
+        to->pSemaphores = (VkSemaphore*)pool->dupArray(from->pSemaphores, from->semaphoreCount * sizeof(const VkSemaphore));
+    }
+    to->pValues = nullptr;
+    if (from->pValues)
+    {
+        to->pValues = (uint64_t*)pool->dupArray(from->pValues, from->semaphoreCount * sizeof(const uint64_t));
+    }
+}
+
+void deepcopy_VkSemaphoreSignalInfo(
+    BumpPool* pool,
+    const VkSemaphoreSignalInfo* from,
+    VkSemaphoreSignalInfo* 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));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* from,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferDeviceAddressInfo(
+    BumpPool* pool,
+    const VkBufferDeviceAddressInfo* from,
+    VkBufferDeviceAddressInfo* 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));
+    }
+}
+
+void deepcopy_VkBufferOpaqueCaptureAddressCreateInfo(
+    BumpPool* pool,
+    const VkBufferOpaqueCaptureAddressCreateInfo* from,
+    VkBufferOpaqueCaptureAddressCreateInfo* 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));
+    }
+}
+
+void deepcopy_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    BumpPool* pool,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* from,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* 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));
+    }
+}
+
+void deepcopy_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    BumpPool* pool,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* from,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* 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));
+    }
+}
+
+#endif
 #ifdef VK_KHR_surface
 void deepcopy_VkSurfaceCapabilitiesKHR(
     BumpPool* pool,
@@ -3271,22 +4339,6 @@
 
 #endif
 #ifdef VK_KHR_display
-void deepcopy_VkDisplayPropertiesKHR(
-    BumpPool* pool,
-    const VkDisplayPropertiesKHR* from,
-    VkDisplayPropertiesKHR* to)
-{
-    (void)pool;
-    *to = *from;
-    to->displayName = nullptr;
-    if (from->displayName)
-    {
-        to->displayName = pool->strDup(from->displayName);
-    }
-    deepcopy_VkExtent2D(pool, &from->physicalDimensions, (VkExtent2D*)(&to->physicalDimensions));
-    deepcopy_VkExtent2D(pool, &from->physicalResolution, (VkExtent2D*)(&to->physicalResolution));
-}
-
 void deepcopy_VkDisplayModeParametersKHR(
     BumpPool* pool,
     const VkDisplayModeParametersKHR* from,
@@ -3297,16 +4349,6 @@
     deepcopy_VkExtent2D(pool, &from->visibleRegion, (VkExtent2D*)(&to->visibleRegion));
 }
 
-void deepcopy_VkDisplayModePropertiesKHR(
-    BumpPool* pool,
-    const VkDisplayModePropertiesKHR* from,
-    VkDisplayModePropertiesKHR* to)
-{
-    (void)pool;
-    *to = *from;
-    deepcopy_VkDisplayModeParametersKHR(pool, &from->parameters, (VkDisplayModeParametersKHR*)(&to->parameters));
-}
-
 void deepcopy_VkDisplayModeCreateInfoKHR(
     BumpPool* pool,
     const VkDisplayModeCreateInfoKHR* from,
@@ -3324,6 +4366,16 @@
     deepcopy_VkDisplayModeParametersKHR(pool, &from->parameters, (VkDisplayModeParametersKHR*)(&to->parameters));
 }
 
+void deepcopy_VkDisplayModePropertiesKHR(
+    BumpPool* pool,
+    const VkDisplayModePropertiesKHR* from,
+    VkDisplayModePropertiesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkDisplayModeParametersKHR(pool, &from->parameters, (VkDisplayModeParametersKHR*)(&to->parameters));
+}
+
 void deepcopy_VkDisplayPlaneCapabilitiesKHR(
     BumpPool* pool,
     const VkDisplayPlaneCapabilitiesKHR* from,
@@ -3350,6 +4402,22 @@
     *to = *from;
 }
 
+void deepcopy_VkDisplayPropertiesKHR(
+    BumpPool* pool,
+    const VkDisplayPropertiesKHR* from,
+    VkDisplayPropertiesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    to->displayName = nullptr;
+    if (from->displayName)
+    {
+        to->displayName = pool->strDup(from->displayName);
+    }
+    deepcopy_VkExtent2D(pool, &from->physicalDimensions, (VkExtent2D*)(&to->physicalDimensions));
+    deepcopy_VkExtent2D(pool, &from->physicalResolution, (VkExtent2D*)(&to->physicalResolution));
+}
+
 void deepcopy_VkDisplaySurfaceCreateInfoKHR(
     BumpPool* pool,
     const VkDisplaySurfaceCreateInfoKHR* from,
@@ -3462,34 +4530,6 @@
 }
 
 #endif
-#ifdef VK_KHR_mir_surface
-void deepcopy_VkMirSurfaceCreateInfoKHR(
-    BumpPool* pool,
-    const VkMirSurfaceCreateInfoKHR* from,
-    VkMirSurfaceCreateInfoKHR* 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->connection = nullptr;
-    if (from->connection)
-    {
-        to->connection = (MirConnection*)pool->dupArray(from->connection, sizeof(MirConnection));
-    }
-    to->mirSurface = nullptr;
-    if (from->mirSurface)
-    {
-        to->mirSurface = (MirSurface*)pool->dupArray(from->mirSurface, sizeof(MirSurface));
-    }
-}
-
-#endif
 #ifdef VK_KHR_android_surface
 void deepcopy_VkAndroidSurfaceCreateInfoKHR(
     BumpPool* pool,
@@ -3850,6 +4890,8 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -3871,14 +4913,17 @@
 {
     (void)pool;
     *to = *from;
-    to->pRectangles = nullptr;
-    if (from->pRectangles)
+    if ((from) != nullptr)
     {
-        to->pRectangles = (VkRectLayerKHR*)pool->alloc(from->rectangleCount * sizeof(const VkRectLayerKHR));
-        to->rectangleCount = from->rectangleCount;
-        for (uint32_t i = 0; i < (uint32_t)from->rectangleCount; ++i)
+        to->pRectangles = nullptr;
+        if (from->pRectangles)
         {
-            deepcopy_VkRectLayerKHR(pool, from->pRectangles + i, (VkRectLayerKHR*)(to->pRectangles + i));
+            to->pRectangles = (VkRectLayerKHR*)pool->alloc(from->rectangleCount * sizeof(const VkRectLayerKHR));
+            to->rectangleCount = from->rectangleCount;
+            for (uint32_t i = 0; i < (uint32_t)from->rectangleCount; ++i)
+            {
+                deepcopy_VkRectLayerKHR(pool, from->pRectangles + i, (VkRectLayerKHR*)(to->pRectangles + i));
+            }
         }
     }
 }
@@ -3897,14 +4942,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pRegions = nullptr;
-    if (from->pRegions)
+    if ((from) != nullptr)
     {
-        to->pRegions = (VkPresentRegionKHR*)pool->alloc(from->swapchainCount * sizeof(const VkPresentRegionKHR));
-        to->swapchainCount = from->swapchainCount;
-        for (uint32_t i = 0; i < (uint32_t)from->swapchainCount; ++i)
+        to->pRegions = nullptr;
+        if (from->pRegions)
         {
-            deepcopy_VkPresentRegionKHR(pool, from->pRegions + i, (VkPresentRegionKHR*)(to->pRegions + i));
+            to->pRegions = (VkPresentRegionKHR*)pool->alloc(from->swapchainCount * sizeof(const VkPresentRegionKHR));
+            to->swapchainCount = from->swapchainCount;
+            for (uint32_t i = 0; i < (uint32_t)from->swapchainCount; ++i)
+            {
+                deepcopy_VkPresentRegionKHR(pool, from->pRegions + i, (VkPresentRegionKHR*)(to->pRegions + i));
+            }
         }
     }
 }
@@ -3912,195 +4960,9 @@
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
-void deepcopy_VkAttachmentDescription2KHR(
-    BumpPool* pool,
-    const VkAttachmentDescription2KHR* from,
-    VkAttachmentDescription2KHR* 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));
-    }
-}
-
-void deepcopy_VkAttachmentReference2KHR(
-    BumpPool* pool,
-    const VkAttachmentReference2KHR* from,
-    VkAttachmentReference2KHR* 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));
-    }
-}
-
-void deepcopy_VkSubpassDescription2KHR(
-    BumpPool* pool,
-    const VkSubpassDescription2KHR* from,
-    VkSubpassDescription2KHR* 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->pInputAttachments = nullptr;
-    if (from->pInputAttachments)
-    {
-        to->pInputAttachments = (VkAttachmentReference2KHR*)pool->alloc(from->inputAttachmentCount * sizeof(const VkAttachmentReference2KHR));
-        to->inputAttachmentCount = from->inputAttachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->inputAttachmentCount; ++i)
-        {
-            deepcopy_VkAttachmentReference2KHR(pool, from->pInputAttachments + i, (VkAttachmentReference2KHR*)(to->pInputAttachments + i));
-        }
-    }
-    to->pColorAttachments = nullptr;
-    if (from->pColorAttachments)
-    {
-        to->pColorAttachments = (VkAttachmentReference2KHR*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference2KHR));
-        to->colorAttachmentCount = from->colorAttachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
-        {
-            deepcopy_VkAttachmentReference2KHR(pool, from->pColorAttachments + i, (VkAttachmentReference2KHR*)(to->pColorAttachments + i));
-        }
-    }
-    to->pResolveAttachments = nullptr;
-    if (from->pResolveAttachments)
-    {
-        to->pResolveAttachments = (VkAttachmentReference2KHR*)pool->alloc(from->colorAttachmentCount * sizeof(const VkAttachmentReference2KHR));
-        to->colorAttachmentCount = from->colorAttachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->colorAttachmentCount; ++i)
-        {
-            deepcopy_VkAttachmentReference2KHR(pool, from->pResolveAttachments + i, (VkAttachmentReference2KHR*)(to->pResolveAttachments + i));
-        }
-    }
-    to->pDepthStencilAttachment = nullptr;
-    if (from->pDepthStencilAttachment)
-    {
-        to->pDepthStencilAttachment = (VkAttachmentReference2KHR*)pool->alloc(sizeof(const VkAttachmentReference2KHR));
-        deepcopy_VkAttachmentReference2KHR(pool, from->pDepthStencilAttachment, (VkAttachmentReference2KHR*)(to->pDepthStencilAttachment));
-    }
-    to->pPreserveAttachments = nullptr;
-    if (from->pPreserveAttachments)
-    {
-        to->pPreserveAttachments = (uint32_t*)pool->dupArray(from->pPreserveAttachments, from->preserveAttachmentCount * sizeof(const uint32_t));
-    }
-}
-
-void deepcopy_VkSubpassDependency2KHR(
-    BumpPool* pool,
-    const VkSubpassDependency2KHR* from,
-    VkSubpassDependency2KHR* 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));
-    }
-}
-
-void deepcopy_VkRenderPassCreateInfo2KHR(
-    BumpPool* pool,
-    const VkRenderPassCreateInfo2KHR* from,
-    VkRenderPassCreateInfo2KHR* 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->pAttachments = nullptr;
-    if (from->pAttachments)
-    {
-        to->pAttachments = (VkAttachmentDescription2KHR*)pool->alloc(from->attachmentCount * sizeof(const VkAttachmentDescription2KHR));
-        to->attachmentCount = from->attachmentCount;
-        for (uint32_t i = 0; i < (uint32_t)from->attachmentCount; ++i)
-        {
-            deepcopy_VkAttachmentDescription2KHR(pool, from->pAttachments + i, (VkAttachmentDescription2KHR*)(to->pAttachments + i));
-        }
-    }
-    to->pSubpasses = nullptr;
-    if (from->pSubpasses)
-    {
-        to->pSubpasses = (VkSubpassDescription2KHR*)pool->alloc(from->subpassCount * sizeof(const VkSubpassDescription2KHR));
-        to->subpassCount = from->subpassCount;
-        for (uint32_t i = 0; i < (uint32_t)from->subpassCount; ++i)
-        {
-            deepcopy_VkSubpassDescription2KHR(pool, from->pSubpasses + i, (VkSubpassDescription2KHR*)(to->pSubpasses + i));
-        }
-    }
-    to->pDependencies = nullptr;
-    if (from->pDependencies)
-    {
-        to->pDependencies = (VkSubpassDependency2KHR*)pool->alloc(from->dependencyCount * sizeof(const VkSubpassDependency2KHR));
-        to->dependencyCount = from->dependencyCount;
-        for (uint32_t i = 0; i < (uint32_t)from->dependencyCount; ++i)
-        {
-            deepcopy_VkSubpassDependency2KHR(pool, from->pDependencies + i, (VkSubpassDependency2KHR*)(to->pDependencies + i));
-        }
-    }
-    to->pCorrelatedViewMasks = nullptr;
-    if (from->pCorrelatedViewMasks)
-    {
-        to->pCorrelatedViewMasks = (uint32_t*)pool->dupArray(from->pCorrelatedViewMasks, from->correlatedViewMaskCount * sizeof(const uint32_t));
-    }
-}
-
-void deepcopy_VkSubpassBeginInfoKHR(
-    BumpPool* pool,
-    const VkSubpassBeginInfoKHR* from,
-    VkSubpassBeginInfoKHR* 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));
-    }
-}
-
-void deepcopy_VkSubpassEndInfoKHR(
-    BumpPool* pool,
-    const VkSubpassEndInfoKHR* from,
-    VkSubpassEndInfoKHR* 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));
-    }
-}
-
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void deepcopy_VkSharedPresentSurfaceCapabilitiesKHR(
@@ -4213,6 +5075,138 @@
 }
 
 #endif
+#ifdef VK_KHR_performance_query
+void deepcopy_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* from,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* from,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPerformanceCounterKHR(
+    BumpPool* pool,
+    const VkPerformanceCounterKHR* from,
+    VkPerformanceCounterKHR* 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));
+    }
+    memcpy(to->uuid, from->uuid, VK_UUID_SIZE * sizeof(uint8_t));
+}
+
+void deepcopy_VkPerformanceCounterDescriptionKHR(
+    BumpPool* pool,
+    const VkPerformanceCounterDescriptionKHR* from,
+    VkPerformanceCounterDescriptionKHR* 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));
+    }
+    memcpy(to->name, from->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    memcpy(to->category, from->category, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+}
+
+void deepcopy_VkQueryPoolPerformanceCreateInfoKHR(
+    BumpPool* pool,
+    const VkQueryPoolPerformanceCreateInfoKHR* from,
+    VkQueryPoolPerformanceCreateInfoKHR* 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->pCounterIndices = nullptr;
+    if (from->pCounterIndices)
+    {
+        to->pCounterIndices = (uint32_t*)pool->dupArray(from->pCounterIndices, from->counterIndexCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkPerformanceCounterResultKHR(
+    BumpPool* pool,
+    const VkPerformanceCounterResultKHR* from,
+    VkPerformanceCounterResultKHR* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkAcquireProfilingLockInfoKHR(
+    BumpPool* pool,
+    const VkAcquireProfilingLockInfoKHR* from,
+    VkAcquireProfilingLockInfoKHR* 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));
+    }
+}
+
+void deepcopy_VkPerformanceQuerySubmitInfoKHR(
+    BumpPool* pool,
+    const VkPerformanceQuerySubmitInfoKHR* from,
+    VkPerformanceQuerySubmitInfoKHR* 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));
+    }
+}
+
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -4364,10 +5358,108 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void deepcopy_VkImageFormatListCreateInfoKHR(
+#endif
+#ifdef VK_KHR_sampler_ycbcr_conversion
+#endif
+#ifdef VK_KHR_bind_memory2
+#endif
+#ifdef VK_KHR_portability_subset
+void deepcopy_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
     BumpPool* pool,
-    const VkImageFormatListCreateInfoKHR* from,
-    VkImageFormatListCreateInfoKHR* to)
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* from,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* from,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_maintenance3
+#endif
+#ifdef VK_KHR_draw_indirect_count
+#endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
+#ifdef VK_KHR_8bit_storage
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+void deepcopy_VkPhysicalDeviceShaderClockFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderClockFeaturesKHR* from,
+    VkPhysicalDeviceShaderClockFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void deepcopy_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* from,
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void deepcopy_VkFragmentShadingRateAttachmentInfoKHR(
+    BumpPool* pool,
+    const VkFragmentShadingRateAttachmentInfoKHR* from,
+    VkFragmentShadingRateAttachmentInfoKHR* to)
 {
     (void)pool;
     *to = *from;
@@ -4378,27 +5470,37 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pViewFormats = nullptr;
-    if (from->pViewFormats)
+    to->pFragmentShadingRateAttachment = nullptr;
+    if (from->pFragmentShadingRateAttachment)
     {
-        to->pViewFormats = (VkFormat*)pool->dupArray(from->pViewFormats, from->viewFormatCount * sizeof(const VkFormat));
+        to->pFragmentShadingRateAttachment = (VkAttachmentReference2*)pool->alloc(sizeof(const VkAttachmentReference2));
+        deepcopy_VkAttachmentReference2(pool, from->pFragmentShadingRateAttachment, (VkAttachmentReference2*)(to->pFragmentShadingRateAttachment));
     }
+    deepcopy_VkExtent2D(pool, &from->shadingRateAttachmentTexelSize, (VkExtent2D*)(&to->shadingRateAttachmentTexelSize));
 }
 
-#endif
-#ifdef VK_KHR_sampler_ycbcr_conversion
-#endif
-#ifdef VK_KHR_bind_memory2
-#endif
-#ifdef VK_KHR_maintenance3
-#endif
-#ifdef VK_KHR_draw_indirect_count
-#endif
-#ifdef VK_KHR_8bit_storage
-void deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR(
+void deepcopy_VkPipelineFragmentShadingRateStateCreateInfoKHR(
     BumpPool* pool,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* from,
-    VkPhysicalDevice8BitStorageFeaturesKHR* to)
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* from,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* 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));
+    }
+    deepcopy_VkExtent2D(pool, &from->fragmentSize, (VkExtent2D*)(&to->fragmentSize));
+    memcpy(to->combinerOps, from->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+}
+
+void deepcopy_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* from,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* to)
 {
     (void)pool;
     *to = *from;
@@ -4411,12 +5513,10 @@
     }
 }
 
-#endif
-#ifdef VK_KHR_shader_float16_int8
-void deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(
+void deepcopy_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
     BumpPool* pool,
-    const VkPhysicalDeviceShaderFloat16Int8Features* from,
-    VkPhysicalDeviceShaderFloat16Int8Features* to)
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* from,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* to)
 {
     (void)pool;
     *to = *from;
@@ -4427,6 +5527,477 @@
         to->pNext = (void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
+    deepcopy_VkExtent2D(pool, &from->minFragmentShadingRateAttachmentTexelSize, (VkExtent2D*)(&to->minFragmentShadingRateAttachmentTexelSize));
+    deepcopy_VkExtent2D(pool, &from->maxFragmentShadingRateAttachmentTexelSize, (VkExtent2D*)(&to->maxFragmentShadingRateAttachmentTexelSize));
+    deepcopy_VkExtent2D(pool, &from->maxFragmentSize, (VkExtent2D*)(&to->maxFragmentSize));
+}
+
+void deepcopy_VkPhysicalDeviceFragmentShadingRateKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateKHR* from,
+    VkPhysicalDeviceFragmentShadingRateKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(pool, &from->fragmentSize, (VkExtent2D*)(&to->fragmentSize));
+}
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void deepcopy_VkSurfaceProtectedCapabilitiesKHR(
+    BumpPool* pool,
+    const VkSurfaceProtectedCapabilitiesKHR* from,
+    VkSurfaceProtectedCapabilitiesKHR* 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));
+    }
+}
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void deepcopy_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* from,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineInfoKHR(
+    BumpPool* pool,
+    const VkPipelineInfoKHR* from,
+    VkPipelineInfoKHR* 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));
+    }
+}
+
+void deepcopy_VkPipelineExecutablePropertiesKHR(
+    BumpPool* pool,
+    const VkPipelineExecutablePropertiesKHR* from,
+    VkPipelineExecutablePropertiesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->name, from->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+}
+
+void deepcopy_VkPipelineExecutableInfoKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableInfoKHR* from,
+    VkPipelineExecutableInfoKHR* 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));
+    }
+}
+
+void deepcopy_VkPipelineExecutableStatisticValueKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableStatisticValueKHR* from,
+    VkPipelineExecutableStatisticValueKHR* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkPipelineExecutableStatisticKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableStatisticKHR* from,
+    VkPipelineExecutableStatisticKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->name, from->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    deepcopy_VkPipelineExecutableStatisticValueKHR(pool, &from->value, (VkPipelineExecutableStatisticValueKHR*)(&to->value));
+}
+
+void deepcopy_VkPipelineExecutableInternalRepresentationKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableInternalRepresentationKHR* from,
+    VkPipelineExecutableInternalRepresentationKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->name, from->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    to->pData = nullptr;
+    if (from->pData)
+    {
+        to->pData = (void*)pool->dupArray(from->pData, from->dataSize * sizeof(uint8_t));
+    }
+}
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void deepcopy_VkPipelineLibraryCreateInfoKHR(
+    BumpPool* pool,
+    const VkPipelineLibraryCreateInfoKHR* from,
+    VkPipelineLibraryCreateInfoKHR* 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->pLibraries = nullptr;
+    if (from->pLibraries)
+    {
+        to->pLibraries = (VkPipeline*)pool->dupArray(from->pLibraries, from->libraryCount * sizeof(const VkPipeline));
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void deepcopy_VkBufferCopy2KHR(
+    BumpPool* pool,
+    const VkBufferCopy2KHR* from,
+    VkBufferCopy2KHR* 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));
+    }
+}
+
+void deepcopy_VkCopyBufferInfo2KHR(
+    BumpPool* pool,
+    const VkCopyBufferInfo2KHR* from,
+    VkCopyBufferInfo2KHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pRegions = nullptr;
+        if (from->pRegions)
+        {
+            to->pRegions = (VkBufferCopy2KHR*)pool->alloc(from->regionCount * sizeof(const VkBufferCopy2KHR));
+            to->regionCount = from->regionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i)
+            {
+                deepcopy_VkBufferCopy2KHR(pool, from->pRegions + i, (VkBufferCopy2KHR*)(to->pRegions + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkImageCopy2KHR(
+    BumpPool* pool,
+    const VkImageCopy2KHR* from,
+    VkImageCopy2KHR* 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));
+    }
+    deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
+    deepcopy_VkOffset3D(pool, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
+    deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
+    deepcopy_VkOffset3D(pool, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
+    deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
+}
+
+void deepcopy_VkCopyImageInfo2KHR(
+    BumpPool* pool,
+    const VkCopyImageInfo2KHR* from,
+    VkCopyImageInfo2KHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pRegions = nullptr;
+        if (from->pRegions)
+        {
+            to->pRegions = (VkImageCopy2KHR*)pool->alloc(from->regionCount * sizeof(const VkImageCopy2KHR));
+            to->regionCount = from->regionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i)
+            {
+                deepcopy_VkImageCopy2KHR(pool, from->pRegions + i, (VkImageCopy2KHR*)(to->pRegions + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkBufferImageCopy2KHR(
+    BumpPool* pool,
+    const VkBufferImageCopy2KHR* from,
+    VkBufferImageCopy2KHR* 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));
+    }
+    deepcopy_VkImageSubresourceLayers(pool, &from->imageSubresource, (VkImageSubresourceLayers*)(&to->imageSubresource));
+    deepcopy_VkOffset3D(pool, &from->imageOffset, (VkOffset3D*)(&to->imageOffset));
+    deepcopy_VkExtent3D(pool, &from->imageExtent, (VkExtent3D*)(&to->imageExtent));
+}
+
+void deepcopy_VkCopyBufferToImageInfo2KHR(
+    BumpPool* pool,
+    const VkCopyBufferToImageInfo2KHR* from,
+    VkCopyBufferToImageInfo2KHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pRegions = nullptr;
+        if (from->pRegions)
+        {
+            to->pRegions = (VkBufferImageCopy2KHR*)pool->alloc(from->regionCount * sizeof(const VkBufferImageCopy2KHR));
+            to->regionCount = from->regionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i)
+            {
+                deepcopy_VkBufferImageCopy2KHR(pool, from->pRegions + i, (VkBufferImageCopy2KHR*)(to->pRegions + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkCopyImageToBufferInfo2KHR(
+    BumpPool* pool,
+    const VkCopyImageToBufferInfo2KHR* from,
+    VkCopyImageToBufferInfo2KHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pRegions = nullptr;
+        if (from->pRegions)
+        {
+            to->pRegions = (VkBufferImageCopy2KHR*)pool->alloc(from->regionCount * sizeof(const VkBufferImageCopy2KHR));
+            to->regionCount = from->regionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i)
+            {
+                deepcopy_VkBufferImageCopy2KHR(pool, from->pRegions + i, (VkBufferImageCopy2KHR*)(to->pRegions + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkImageBlit2KHR(
+    BumpPool* pool,
+    const VkImageBlit2KHR* from,
+    VkImageBlit2KHR* 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));
+    }
+    deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        deepcopy_VkOffset3D(pool, from->srcOffsets + i, (VkOffset3D*)(to->srcOffsets + i));
+    }
+    deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        deepcopy_VkOffset3D(pool, from->dstOffsets + i, (VkOffset3D*)(to->dstOffsets + i));
+    }
+}
+
+void deepcopy_VkBlitImageInfo2KHR(
+    BumpPool* pool,
+    const VkBlitImageInfo2KHR* from,
+    VkBlitImageInfo2KHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pRegions = nullptr;
+        if (from->pRegions)
+        {
+            to->pRegions = (VkImageBlit2KHR*)pool->alloc(from->regionCount * sizeof(const VkImageBlit2KHR));
+            to->regionCount = from->regionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i)
+            {
+                deepcopy_VkImageBlit2KHR(pool, from->pRegions + i, (VkImageBlit2KHR*)(to->pRegions + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkImageResolve2KHR(
+    BumpPool* pool,
+    const VkImageResolve2KHR* from,
+    VkImageResolve2KHR* 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));
+    }
+    deepcopy_VkImageSubresourceLayers(pool, &from->srcSubresource, (VkImageSubresourceLayers*)(&to->srcSubresource));
+    deepcopy_VkOffset3D(pool, &from->srcOffset, (VkOffset3D*)(&to->srcOffset));
+    deepcopy_VkImageSubresourceLayers(pool, &from->dstSubresource, (VkImageSubresourceLayers*)(&to->dstSubresource));
+    deepcopy_VkOffset3D(pool, &from->dstOffset, (VkOffset3D*)(&to->dstOffset));
+    deepcopy_VkExtent3D(pool, &from->extent, (VkExtent3D*)(&to->extent));
+}
+
+void deepcopy_VkResolveImageInfo2KHR(
+    BumpPool* pool,
+    const VkResolveImageInfo2KHR* from,
+    VkResolveImageInfo2KHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pRegions = nullptr;
+        if (from->pRegions)
+        {
+            to->pRegions = (VkImageResolve2KHR*)pool->alloc(from->regionCount * sizeof(const VkImageResolve2KHR));
+            to->regionCount = from->regionCount;
+            for (uint32_t i = 0; i < (uint32_t)from->regionCount; ++i)
+            {
+                deepcopy_VkImageResolve2KHR(pool, from->pRegions + i, (VkImageResolve2KHR*)(to->pRegions + i));
+            }
+        }
+    }
 }
 
 #endif
@@ -4622,6 +6193,90 @@
 }
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void deepcopy_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* from,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* from,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* from,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* 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));
+    }
+}
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void deepcopy_VkImageViewHandleInfoNVX(
+    BumpPool* pool,
+    const VkImageViewHandleInfoNVX* from,
+    VkImageViewHandleInfoNVX* 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));
+    }
+}
+
+void deepcopy_VkImageViewAddressPropertiesNVX(
+    BumpPool* pool,
+    const VkImageViewAddressPropertiesNVX* from,
+    VkImageViewAddressPropertiesNVX* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -4672,6 +6327,42 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void deepcopy_VkStreamDescriptorSurfaceCreateInfoGGP(
+    BumpPool* pool,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* from,
+    VkStreamDescriptorSurfaceCreateInfoGGP* 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));
+    }
+}
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void deepcopy_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* from,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -4852,6 +6543,58 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void deepcopy_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* from,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void deepcopy_VkImageViewASTCDecodeModeEXT(
+    BumpPool* pool,
+    const VkImageViewASTCDecodeModeEXT* from,
+    VkImageViewASTCDecodeModeEXT* 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));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* from,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void deepcopy_VkConditionalRenderingBeginInfoEXT(
     BumpPool* pool,
@@ -4902,211 +6645,6 @@
 }
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void deepcopy_VkDeviceGeneratedCommandsFeaturesNVX(
-    BumpPool* pool,
-    const VkDeviceGeneratedCommandsFeaturesNVX* from,
-    VkDeviceGeneratedCommandsFeaturesNVX* 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));
-    }
-}
-
-void deepcopy_VkDeviceGeneratedCommandsLimitsNVX(
-    BumpPool* pool,
-    const VkDeviceGeneratedCommandsLimitsNVX* from,
-    VkDeviceGeneratedCommandsLimitsNVX* 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));
-    }
-}
-
-void deepcopy_VkIndirectCommandsTokenNVX(
-    BumpPool* pool,
-    const VkIndirectCommandsTokenNVX* from,
-    VkIndirectCommandsTokenNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkIndirectCommandsLayoutTokenNVX(
-    BumpPool* pool,
-    const VkIndirectCommandsLayoutTokenNVX* from,
-    VkIndirectCommandsLayoutTokenNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkIndirectCommandsLayoutCreateInfoNVX(
-    BumpPool* pool,
-    const VkIndirectCommandsLayoutCreateInfoNVX* from,
-    VkIndirectCommandsLayoutCreateInfoNVX* 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->pTokens = nullptr;
-    if (from->pTokens)
-    {
-        to->pTokens = (VkIndirectCommandsLayoutTokenNVX*)pool->alloc(from->tokenCount * sizeof(const VkIndirectCommandsLayoutTokenNVX));
-        to->tokenCount = from->tokenCount;
-        for (uint32_t i = 0; i < (uint32_t)from->tokenCount; ++i)
-        {
-            deepcopy_VkIndirectCommandsLayoutTokenNVX(pool, from->pTokens + i, (VkIndirectCommandsLayoutTokenNVX*)(to->pTokens + i));
-        }
-    }
-}
-
-void deepcopy_VkCmdProcessCommandsInfoNVX(
-    BumpPool* pool,
-    const VkCmdProcessCommandsInfoNVX* from,
-    VkCmdProcessCommandsInfoNVX* 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->pIndirectCommandsTokens = nullptr;
-    if (from->pIndirectCommandsTokens)
-    {
-        to->pIndirectCommandsTokens = (VkIndirectCommandsTokenNVX*)pool->alloc(from->indirectCommandsTokenCount * sizeof(const VkIndirectCommandsTokenNVX));
-        to->indirectCommandsTokenCount = from->indirectCommandsTokenCount;
-        for (uint32_t i = 0; i < (uint32_t)from->indirectCommandsTokenCount; ++i)
-        {
-            deepcopy_VkIndirectCommandsTokenNVX(pool, from->pIndirectCommandsTokens + i, (VkIndirectCommandsTokenNVX*)(to->pIndirectCommandsTokens + i));
-        }
-    }
-}
-
-void deepcopy_VkCmdReserveSpaceForCommandsInfoNVX(
-    BumpPool* pool,
-    const VkCmdReserveSpaceForCommandsInfoNVX* from,
-    VkCmdReserveSpaceForCommandsInfoNVX* 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));
-    }
-}
-
-void deepcopy_VkObjectTableCreateInfoNVX(
-    BumpPool* pool,
-    const VkObjectTableCreateInfoNVX* from,
-    VkObjectTableCreateInfoNVX* 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->pObjectEntryTypes = nullptr;
-    if (from->pObjectEntryTypes)
-    {
-        to->pObjectEntryTypes = (VkObjectEntryTypeNVX*)pool->dupArray(from->pObjectEntryTypes, from->objectCount * sizeof(const VkObjectEntryTypeNVX));
-    }
-    to->pObjectEntryCounts = nullptr;
-    if (from->pObjectEntryCounts)
-    {
-        to->pObjectEntryCounts = (uint32_t*)pool->dupArray(from->pObjectEntryCounts, from->objectCount * sizeof(const uint32_t));
-    }
-    to->pObjectEntryUsageFlags = nullptr;
-    if (from->pObjectEntryUsageFlags)
-    {
-        to->pObjectEntryUsageFlags = (VkObjectEntryUsageFlagsNVX*)pool->dupArray(from->pObjectEntryUsageFlags, from->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
-    }
-}
-
-void deepcopy_VkObjectTableEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableEntryNVX* from,
-    VkObjectTableEntryNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkObjectTablePipelineEntryNVX(
-    BumpPool* pool,
-    const VkObjectTablePipelineEntryNVX* from,
-    VkObjectTablePipelineEntryNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkObjectTableDescriptorSetEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableDescriptorSetEntryNVX* from,
-    VkObjectTableDescriptorSetEntryNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkObjectTableVertexBufferEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableVertexBufferEntryNVX* from,
-    VkObjectTableVertexBufferEntryNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkObjectTableIndexBufferEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableIndexBufferEntryNVX* from,
-    VkObjectTableIndexBufferEntryNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-void deepcopy_VkObjectTablePushConstantEntryNVX(
-    BumpPool* pool,
-    const VkObjectTablePushConstantEntryNVX* from,
-    VkObjectTablePushConstantEntryNVX* to)
-{
-    (void)pool;
-    *to = *from;
-}
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void deepcopy_VkViewportWScalingNV(
     BumpPool* pool,
@@ -5131,14 +6669,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pViewportWScalings = nullptr;
-    if (from->pViewportWScalings)
+    if ((from) != nullptr)
     {
-        to->pViewportWScalings = (VkViewportWScalingNV*)pool->alloc(from->viewportCount * sizeof(const VkViewportWScalingNV));
-        to->viewportCount = from->viewportCount;
-        for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
+        to->pViewportWScalings = nullptr;
+        if (from->pViewportWScalings)
         {
-            deepcopy_VkViewportWScalingNV(pool, from->pViewportWScalings + i, (VkViewportWScalingNV*)(to->pViewportWScalings + i));
+            to->pViewportWScalings = (VkViewportWScalingNV*)pool->alloc(from->viewportCount * sizeof(const VkViewportWScalingNV));
+            to->viewportCount = from->viewportCount;
+            for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
+            {
+                deepcopy_VkViewportWScalingNV(pool, from->pViewportWScalings + i, (VkViewportWScalingNV*)(to->pViewportWScalings + i));
+            }
         }
     }
 }
@@ -5277,14 +6818,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pTimes = nullptr;
-    if (from->pTimes)
+    if ((from) != nullptr)
     {
-        to->pTimes = (VkPresentTimeGOOGLE*)pool->alloc(from->swapchainCount * sizeof(const VkPresentTimeGOOGLE));
-        to->swapchainCount = from->swapchainCount;
-        for (uint32_t i = 0; i < (uint32_t)from->swapchainCount; ++i)
+        to->pTimes = nullptr;
+        if (from->pTimes)
         {
-            deepcopy_VkPresentTimeGOOGLE(pool, from->pTimes + i, (VkPresentTimeGOOGLE*)(to->pTimes + i));
+            to->pTimes = (VkPresentTimeGOOGLE*)pool->alloc(from->swapchainCount * sizeof(const VkPresentTimeGOOGLE));
+            to->swapchainCount = from->swapchainCount;
+            for (uint32_t i = 0; i < (uint32_t)from->swapchainCount; ++i)
+            {
+                deepcopy_VkPresentTimeGOOGLE(pool, from->pTimes + i, (VkPresentTimeGOOGLE*)(to->pTimes + i));
+            }
         }
     }
 }
@@ -5338,14 +6882,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pViewportSwizzles = nullptr;
-    if (from->pViewportSwizzles)
+    if ((from) != nullptr)
     {
-        to->pViewportSwizzles = (VkViewportSwizzleNV*)pool->alloc(from->viewportCount * sizeof(const VkViewportSwizzleNV));
-        to->viewportCount = from->viewportCount;
-        for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
+        to->pViewportSwizzles = nullptr;
+        if (from->pViewportSwizzles)
         {
-            deepcopy_VkViewportSwizzleNV(pool, from->pViewportSwizzles + i, (VkViewportSwizzleNV*)(to->pViewportSwizzles + i));
+            to->pViewportSwizzles = (VkViewportSwizzleNV*)pool->alloc(from->viewportCount * sizeof(const VkViewportSwizzleNV));
+            to->viewportCount = from->viewportCount;
+            for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
+            {
+                deepcopy_VkViewportSwizzleNV(pool, from->pViewportSwizzles + i, (VkViewportSwizzleNV*)(to->pViewportSwizzles + i));
+            }
         }
     }
 }
@@ -5382,14 +6929,17 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pDiscardRectangles = nullptr;
-    if (from->pDiscardRectangles)
+    if ((from) != nullptr)
     {
-        to->pDiscardRectangles = (VkRect2D*)pool->alloc(from->discardRectangleCount * sizeof(const VkRect2D));
-        to->discardRectangleCount = from->discardRectangleCount;
-        for (uint32_t i = 0; i < (uint32_t)from->discardRectangleCount; ++i)
+        to->pDiscardRectangles = nullptr;
+        if (from->pDiscardRectangles)
         {
-            deepcopy_VkRect2D(pool, from->pDiscardRectangles + i, (VkRect2D*)(to->pDiscardRectangles + i));
+            to->pDiscardRectangles = (VkRect2D*)pool->alloc(from->discardRectangleCount * sizeof(const VkRect2D));
+            to->discardRectangleCount = from->discardRectangleCount;
+            for (uint32_t i = 0; i < (uint32_t)from->discardRectangleCount; ++i)
+            {
+                deepcopy_VkRect2D(pool, from->pDiscardRectangles + i, (VkRect2D*)(to->pDiscardRectangles + i));
+            }
         }
     }
 }
@@ -5429,6 +6979,40 @@
 }
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void deepcopy_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* from,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* from,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* 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));
+    }
+}
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -5508,53 +7092,13 @@
 }
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void deepcopy_VkDebugUtilsObjectNameInfoEXT(
-    BumpPool* pool,
-    const VkDebugUtilsObjectNameInfoEXT* from,
-    VkDebugUtilsObjectNameInfoEXT* 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->pObjectName = nullptr;
-    if (from->pObjectName)
-    {
-        to->pObjectName = pool->strDup(from->pObjectName);
-    }
-}
-
-void deepcopy_VkDebugUtilsObjectTagInfoEXT(
-    BumpPool* pool,
-    const VkDebugUtilsObjectTagInfoEXT* from,
-    VkDebugUtilsObjectTagInfoEXT* 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->pTag = nullptr;
-    if (from->pTag)
-    {
-        to->pTag = (void*)pool->dupArray(from->pTag, from->tagSize * sizeof(const uint8_t));
-    }
-}
-
 void deepcopy_VkDebugUtilsLabelEXT(
     BumpPool* pool,
     const VkDebugUtilsLabelEXT* from,
@@ -5577,6 +7121,27 @@
     memcpy(to->color, from->color, 4 * sizeof(float));
 }
 
+void deepcopy_VkDebugUtilsObjectNameInfoEXT(
+    BumpPool* pool,
+    const VkDebugUtilsObjectNameInfoEXT* from,
+    VkDebugUtilsObjectNameInfoEXT* 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->pObjectName = nullptr;
+    if (from->pObjectName)
+    {
+        to->pObjectName = pool->strDup(from->pObjectName);
+    }
+}
+
 void deepcopy_VkDebugUtilsMessengerCallbackDataEXT(
     BumpPool* pool,
     const VkDebugUtilsMessengerCallbackDataEXT* from,
@@ -5601,34 +7166,43 @@
     {
         to->pMessage = pool->strDup(from->pMessage);
     }
-    to->pQueueLabels = nullptr;
-    if (from->pQueueLabels)
+    if ((from) != nullptr)
     {
-        to->pQueueLabels = (VkDebugUtilsLabelEXT*)pool->alloc(from->queueLabelCount * sizeof(VkDebugUtilsLabelEXT));
-        to->queueLabelCount = from->queueLabelCount;
-        for (uint32_t i = 0; i < (uint32_t)from->queueLabelCount; ++i)
+        to->pQueueLabels = nullptr;
+        if (from->pQueueLabels)
         {
-            deepcopy_VkDebugUtilsLabelEXT(pool, from->pQueueLabels + i, (VkDebugUtilsLabelEXT*)(to->pQueueLabels + i));
+            to->pQueueLabels = (VkDebugUtilsLabelEXT*)pool->alloc(from->queueLabelCount * sizeof(VkDebugUtilsLabelEXT));
+            to->queueLabelCount = from->queueLabelCount;
+            for (uint32_t i = 0; i < (uint32_t)from->queueLabelCount; ++i)
+            {
+                deepcopy_VkDebugUtilsLabelEXT(pool, from->pQueueLabels + i, (VkDebugUtilsLabelEXT*)(to->pQueueLabels + i));
+            }
         }
     }
-    to->pCmdBufLabels = nullptr;
-    if (from->pCmdBufLabels)
+    if ((from) != nullptr)
     {
-        to->pCmdBufLabels = (VkDebugUtilsLabelEXT*)pool->alloc(from->cmdBufLabelCount * sizeof(VkDebugUtilsLabelEXT));
-        to->cmdBufLabelCount = from->cmdBufLabelCount;
-        for (uint32_t i = 0; i < (uint32_t)from->cmdBufLabelCount; ++i)
+        to->pCmdBufLabels = nullptr;
+        if (from->pCmdBufLabels)
         {
-            deepcopy_VkDebugUtilsLabelEXT(pool, from->pCmdBufLabels + i, (VkDebugUtilsLabelEXT*)(to->pCmdBufLabels + i));
+            to->pCmdBufLabels = (VkDebugUtilsLabelEXT*)pool->alloc(from->cmdBufLabelCount * sizeof(VkDebugUtilsLabelEXT));
+            to->cmdBufLabelCount = from->cmdBufLabelCount;
+            for (uint32_t i = 0; i < (uint32_t)from->cmdBufLabelCount; ++i)
+            {
+                deepcopy_VkDebugUtilsLabelEXT(pool, from->pCmdBufLabels + i, (VkDebugUtilsLabelEXT*)(to->pCmdBufLabels + i));
+            }
         }
     }
-    to->pObjects = nullptr;
-    if (from->pObjects)
+    if ((from) != nullptr)
     {
-        to->pObjects = (VkDebugUtilsObjectNameInfoEXT*)pool->alloc(from->objectCount * sizeof(VkDebugUtilsObjectNameInfoEXT));
-        to->objectCount = from->objectCount;
-        for (uint32_t i = 0; i < (uint32_t)from->objectCount; ++i)
+        to->pObjects = nullptr;
+        if (from->pObjects)
         {
-            deepcopy_VkDebugUtilsObjectNameInfoEXT(pool, from->pObjects + i, (VkDebugUtilsObjectNameInfoEXT*)(to->pObjects + i));
+            to->pObjects = (VkDebugUtilsObjectNameInfoEXT*)pool->alloc(from->objectCount * sizeof(VkDebugUtilsObjectNameInfoEXT));
+            to->objectCount = from->objectCount;
+            for (uint32_t i = 0; i < (uint32_t)from->objectCount; ++i)
+            {
+                deepcopy_VkDebugUtilsObjectNameInfoEXT(pool, from->pObjects + i, (VkDebugUtilsObjectNameInfoEXT*)(to->pObjects + i));
+            }
         }
     }
 }
@@ -5654,6 +7228,27 @@
     }
 }
 
+void deepcopy_VkDebugUtilsObjectTagInfoEXT(
+    BumpPool* pool,
+    const VkDebugUtilsObjectTagInfoEXT* from,
+    VkDebugUtilsObjectTagInfoEXT* 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->pTag = nullptr;
+    if (from->pTag)
+    {
+        to->pTag = (void*)pool->dupArray(from->pTag, from->tagSize * sizeof(const uint8_t));
+    }
+}
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void deepcopy_VkAndroidHardwareBufferUsageANDROID(
@@ -5760,26 +7355,18 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void deepcopy_VkSamplerReductionModeCreateInfoEXT(
+#endif
+#ifdef VK_AMD_gpu_shader_int16
+#endif
+#ifdef VK_AMD_mixed_attachment_samples
+#endif
+#ifdef VK_AMD_shader_fragment_mask
+#endif
+#ifdef VK_EXT_inline_uniform_block
+void deepcopy_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
     BumpPool* pool,
-    const VkSamplerReductionModeCreateInfoEXT* from,
-    VkSamplerReductionModeCreateInfoEXT* 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));
-    }
-}
-
-void deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    BumpPool* pool,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* from,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* to)
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* from,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* to)
 {
     (void)pool;
     *to = *from;
@@ -5792,12 +7379,59 @@
     }
 }
 
-#endif
-#ifdef VK_AMD_gpu_shader_int16
-#endif
-#ifdef VK_AMD_mixed_attachment_samples
-#endif
-#ifdef VK_AMD_shader_fragment_mask
+void deepcopy_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* from,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkWriteDescriptorSetInlineUniformBlockEXT(
+    BumpPool* pool,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* from,
+    VkWriteDescriptorSetInlineUniformBlockEXT* 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->pData = nullptr;
+    if (from->pData)
+    {
+        to->pData = (void*)pool->dupArray(from->pData, from->dataSize * sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    BumpPool* pool,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* from,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* 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));
+    }
+}
+
 #endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
@@ -5826,14 +7460,17 @@
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
     deepcopy_VkExtent2D(pool, &from->sampleLocationGridSize, (VkExtent2D*)(&to->sampleLocationGridSize));
-    to->pSampleLocations = nullptr;
-    if (from->pSampleLocations)
+    if ((from) != nullptr)
     {
-        to->pSampleLocations = (VkSampleLocationEXT*)pool->alloc(from->sampleLocationsCount * sizeof(const VkSampleLocationEXT));
-        to->sampleLocationsCount = from->sampleLocationsCount;
-        for (uint32_t i = 0; i < (uint32_t)from->sampleLocationsCount; ++i)
+        to->pSampleLocations = nullptr;
+        if (from->pSampleLocations)
         {
-            deepcopy_VkSampleLocationEXT(pool, from->pSampleLocations + i, (VkSampleLocationEXT*)(to->pSampleLocations + i));
+            to->pSampleLocations = (VkSampleLocationEXT*)pool->alloc(from->sampleLocationsCount * sizeof(const VkSampleLocationEXT));
+            to->sampleLocationsCount = from->sampleLocationsCount;
+            for (uint32_t i = 0; i < (uint32_t)from->sampleLocationsCount; ++i)
+            {
+                deepcopy_VkSampleLocationEXT(pool, from->pSampleLocations + i, (VkSampleLocationEXT*)(to->pSampleLocations + i));
+            }
         }
     }
 }
@@ -5872,24 +7509,30 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pAttachmentInitialSampleLocations = nullptr;
-    if (from->pAttachmentInitialSampleLocations)
+    if ((from) != nullptr)
     {
-        to->pAttachmentInitialSampleLocations = (VkAttachmentSampleLocationsEXT*)pool->alloc(from->attachmentInitialSampleLocationsCount * sizeof(const VkAttachmentSampleLocationsEXT));
-        to->attachmentInitialSampleLocationsCount = from->attachmentInitialSampleLocationsCount;
-        for (uint32_t i = 0; i < (uint32_t)from->attachmentInitialSampleLocationsCount; ++i)
+        to->pAttachmentInitialSampleLocations = nullptr;
+        if (from->pAttachmentInitialSampleLocations)
         {
-            deepcopy_VkAttachmentSampleLocationsEXT(pool, from->pAttachmentInitialSampleLocations + i, (VkAttachmentSampleLocationsEXT*)(to->pAttachmentInitialSampleLocations + i));
+            to->pAttachmentInitialSampleLocations = (VkAttachmentSampleLocationsEXT*)pool->alloc(from->attachmentInitialSampleLocationsCount * sizeof(const VkAttachmentSampleLocationsEXT));
+            to->attachmentInitialSampleLocationsCount = from->attachmentInitialSampleLocationsCount;
+            for (uint32_t i = 0; i < (uint32_t)from->attachmentInitialSampleLocationsCount; ++i)
+            {
+                deepcopy_VkAttachmentSampleLocationsEXT(pool, from->pAttachmentInitialSampleLocations + i, (VkAttachmentSampleLocationsEXT*)(to->pAttachmentInitialSampleLocations + i));
+            }
         }
     }
-    to->pPostSubpassSampleLocations = nullptr;
-    if (from->pPostSubpassSampleLocations)
+    if ((from) != nullptr)
     {
-        to->pPostSubpassSampleLocations = (VkSubpassSampleLocationsEXT*)pool->alloc(from->postSubpassSampleLocationsCount * sizeof(const VkSubpassSampleLocationsEXT));
-        to->postSubpassSampleLocationsCount = from->postSubpassSampleLocationsCount;
-        for (uint32_t i = 0; i < (uint32_t)from->postSubpassSampleLocationsCount; ++i)
+        to->pPostSubpassSampleLocations = nullptr;
+        if (from->pPostSubpassSampleLocations)
         {
-            deepcopy_VkSubpassSampleLocationsEXT(pool, from->pPostSubpassSampleLocations + i, (VkSubpassSampleLocationsEXT*)(to->pPostSubpassSampleLocations + i));
+            to->pPostSubpassSampleLocations = (VkSubpassSampleLocationsEXT*)pool->alloc(from->postSubpassSampleLocationsCount * sizeof(const VkSubpassSampleLocationsEXT));
+            to->postSubpassSampleLocationsCount = from->postSubpassSampleLocationsCount;
+            for (uint32_t i = 0; i < (uint32_t)from->postSubpassSampleLocationsCount; ++i)
+            {
+                deepcopy_VkSubpassSampleLocationsEXT(pool, from->pPostSubpassSampleLocations + i, (VkSubpassSampleLocationsEXT*)(to->pPostSubpassSampleLocations + i));
+            }
         }
     }
 }
@@ -6040,8 +7683,169 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void deepcopy_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* from,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* from,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void deepcopy_VkDrmFormatModifierPropertiesEXT(
+    BumpPool* pool,
+    const VkDrmFormatModifierPropertiesEXT* from,
+    VkDrmFormatModifierPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkDrmFormatModifierPropertiesListEXT(
+    BumpPool* pool,
+    const VkDrmFormatModifierPropertiesListEXT* from,
+    VkDrmFormatModifierPropertiesListEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    if ((from) != nullptr)
+    {
+        to->pDrmFormatModifierProperties = nullptr;
+        if (from->pDrmFormatModifierProperties)
+        {
+            to->pDrmFormatModifierProperties = (VkDrmFormatModifierPropertiesEXT*)pool->alloc(from->drmFormatModifierCount * sizeof(VkDrmFormatModifierPropertiesEXT));
+            to->drmFormatModifierCount = from->drmFormatModifierCount;
+            for (uint32_t i = 0; i < (uint32_t)from->drmFormatModifierCount; ++i)
+            {
+                deepcopy_VkDrmFormatModifierPropertiesEXT(pool, from->pDrmFormatModifierProperties + i, (VkDrmFormatModifierPropertiesEXT*)(to->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* from,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* 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->pQueueFamilyIndices = nullptr;
+    if (from->pQueueFamilyIndices)
+    {
+        to->pQueueFamilyIndices = (uint32_t*)pool->dupArray(from->pQueueFamilyIndices, from->queueFamilyIndexCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkImageDrmFormatModifierListCreateInfoEXT(
+    BumpPool* pool,
+    const VkImageDrmFormatModifierListCreateInfoEXT* from,
+    VkImageDrmFormatModifierListCreateInfoEXT* 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->pDrmFormatModifiers = nullptr;
+    if (from->pDrmFormatModifiers)
+    {
+        to->pDrmFormatModifiers = (uint64_t*)pool->dupArray(from->pDrmFormatModifiers, from->drmFormatModifierCount * sizeof(const uint64_t));
+    }
+}
+
+void deepcopy_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    BumpPool* pool,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* from,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pPlaneLayouts = nullptr;
+        if (from->pPlaneLayouts)
+        {
+            to->pPlaneLayouts = (VkSubresourceLayout*)pool->alloc(from->drmFormatModifierPlaneCount * sizeof(const VkSubresourceLayout));
+            to->drmFormatModifierPlaneCount = from->drmFormatModifierPlaneCount;
+            for (uint32_t i = 0; i < (uint32_t)from->drmFormatModifierPlaneCount; ++i)
+            {
+                deepcopy_VkSubresourceLayout(pool, from->pPlaneLayouts + i, (VkSubresourceLayout*)(to->pPlaneLayouts + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkImageDrmFormatModifierPropertiesEXT(
+    BumpPool* pool,
+    const VkImageDrmFormatModifierPropertiesEXT* from,
+    VkImageDrmFormatModifierPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_validation_cache
 void deepcopy_VkValidationCacheCreateInfoEXT(
     BumpPool* pool,
@@ -6082,10 +7886,28 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+#endif
+#ifdef VK_EXT_shader_viewport_index_layer
+#endif
+#ifdef VK_NV_shading_rate_image
+void deepcopy_VkShadingRatePaletteNV(
     BumpPool* pool,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* from,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* to)
+    const VkShadingRatePaletteNV* from,
+    VkShadingRatePaletteNV* to)
+{
+    (void)pool;
+    *to = *from;
+    to->pShadingRatePaletteEntries = nullptr;
+    if (from->pShadingRatePaletteEntries)
+    {
+        to->pShadingRatePaletteEntries = (VkShadingRatePaletteEntryNV*)pool->dupArray(from->pShadingRatePaletteEntries, from->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV));
+    }
+}
+
+void deepcopy_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* from,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* to)
 {
     (void)pool;
     *to = *from;
@@ -6096,17 +7918,25 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pBindingFlags = nullptr;
-    if (from->pBindingFlags)
+    if ((from) != nullptr)
     {
-        to->pBindingFlags = (VkDescriptorBindingFlagsEXT*)pool->dupArray(from->pBindingFlags, from->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
+        to->pShadingRatePalettes = nullptr;
+        if (from->pShadingRatePalettes)
+        {
+            to->pShadingRatePalettes = (VkShadingRatePaletteNV*)pool->alloc(from->viewportCount * sizeof(const VkShadingRatePaletteNV));
+            to->viewportCount = from->viewportCount;
+            for (uint32_t i = 0; i < (uint32_t)from->viewportCount; ++i)
+            {
+                deepcopy_VkShadingRatePaletteNV(pool, from->pShadingRatePalettes + i, (VkShadingRatePaletteNV*)(to->pShadingRatePalettes + i));
+            }
+        }
     }
 }
 
-void deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void deepcopy_VkPhysicalDeviceShadingRateImageFeaturesNV(
     BumpPool* pool,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* from,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* to)
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* from,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* to)
 {
     (void)pool;
     *to = *from;
@@ -6119,10 +7949,311 @@
     }
 }
 
-void deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void deepcopy_VkPhysicalDeviceShadingRateImagePropertiesNV(
     BumpPool* pool,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* from,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* to)
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* from,
+    VkPhysicalDeviceShadingRateImagePropertiesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkExtent2D(pool, &from->shadingRateTexelSize, (VkExtent2D*)(&to->shadingRateTexelSize));
+}
+
+void deepcopy_VkCoarseSampleLocationNV(
+    BumpPool* pool,
+    const VkCoarseSampleLocationNV* from,
+    VkCoarseSampleLocationNV* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkCoarseSampleOrderCustomNV(
+    BumpPool* pool,
+    const VkCoarseSampleOrderCustomNV* from,
+    VkCoarseSampleOrderCustomNV* to)
+{
+    (void)pool;
+    *to = *from;
+    if ((from) != nullptr)
+    {
+        to->pSampleLocations = nullptr;
+        if (from->pSampleLocations)
+        {
+            to->pSampleLocations = (VkCoarseSampleLocationNV*)pool->alloc(from->sampleLocationCount * sizeof(const VkCoarseSampleLocationNV));
+            to->sampleLocationCount = from->sampleLocationCount;
+            for (uint32_t i = 0; i < (uint32_t)from->sampleLocationCount; ++i)
+            {
+                deepcopy_VkCoarseSampleLocationNV(pool, from->pSampleLocations + i, (VkCoarseSampleLocationNV*)(to->pSampleLocations + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* from,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pCustomSampleOrders = nullptr;
+        if (from->pCustomSampleOrders)
+        {
+            to->pCustomSampleOrders = (VkCoarseSampleOrderCustomNV*)pool->alloc(from->customSampleOrderCount * sizeof(const VkCoarseSampleOrderCustomNV));
+            to->customSampleOrderCount = from->customSampleOrderCount;
+            for (uint32_t i = 0; i < (uint32_t)from->customSampleOrderCount; ++i)
+            {
+                deepcopy_VkCoarseSampleOrderCustomNV(pool, from->pCustomSampleOrders + i, (VkCoarseSampleOrderCustomNV*)(to->pCustomSampleOrders + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_NV_ray_tracing
+void deepcopy_VkRayTracingShaderGroupCreateInfoNV(
+    BumpPool* pool,
+    const VkRayTracingShaderGroupCreateInfoNV* from,
+    VkRayTracingShaderGroupCreateInfoNV* 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));
+    }
+}
+
+void deepcopy_VkRayTracingPipelineCreateInfoNV(
+    BumpPool* pool,
+    const VkRayTracingPipelineCreateInfoNV* from,
+    VkRayTracingPipelineCreateInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pStages = nullptr;
+        if (from->pStages)
+        {
+            to->pStages = (VkPipelineShaderStageCreateInfo*)pool->alloc(from->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
+            to->stageCount = from->stageCount;
+            for (uint32_t i = 0; i < (uint32_t)from->stageCount; ++i)
+            {
+                deepcopy_VkPipelineShaderStageCreateInfo(pool, from->pStages + i, (VkPipelineShaderStageCreateInfo*)(to->pStages + i));
+            }
+        }
+    }
+    if ((from) != nullptr)
+    {
+        to->pGroups = nullptr;
+        if (from->pGroups)
+        {
+            to->pGroups = (VkRayTracingShaderGroupCreateInfoNV*)pool->alloc(from->groupCount * sizeof(const VkRayTracingShaderGroupCreateInfoNV));
+            to->groupCount = from->groupCount;
+            for (uint32_t i = 0; i < (uint32_t)from->groupCount; ++i)
+            {
+                deepcopy_VkRayTracingShaderGroupCreateInfoNV(pool, from->pGroups + i, (VkRayTracingShaderGroupCreateInfoNV*)(to->pGroups + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkGeometryTrianglesNV(
+    BumpPool* pool,
+    const VkGeometryTrianglesNV* from,
+    VkGeometryTrianglesNV* 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));
+    }
+}
+
+void deepcopy_VkGeometryAABBNV(
+    BumpPool* pool,
+    const VkGeometryAABBNV* from,
+    VkGeometryAABBNV* 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));
+    }
+}
+
+void deepcopy_VkGeometryDataNV(
+    BumpPool* pool,
+    const VkGeometryDataNV* from,
+    VkGeometryDataNV* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkGeometryTrianglesNV(pool, &from->triangles, (VkGeometryTrianglesNV*)(&to->triangles));
+    deepcopy_VkGeometryAABBNV(pool, &from->aabbs, (VkGeometryAABBNV*)(&to->aabbs));
+}
+
+void deepcopy_VkGeometryNV(
+    BumpPool* pool,
+    const VkGeometryNV* from,
+    VkGeometryNV* 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));
+    }
+    deepcopy_VkGeometryDataNV(pool, &from->geometry, (VkGeometryDataNV*)(&to->geometry));
+}
+
+void deepcopy_VkAccelerationStructureInfoNV(
+    BumpPool* pool,
+    const VkAccelerationStructureInfoNV* from,
+    VkAccelerationStructureInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pGeometries = nullptr;
+        if (from->pGeometries)
+        {
+            to->pGeometries = (VkGeometryNV*)pool->alloc(from->geometryCount * sizeof(const VkGeometryNV));
+            to->geometryCount = from->geometryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->geometryCount; ++i)
+            {
+                deepcopy_VkGeometryNV(pool, from->pGeometries + i, (VkGeometryNV*)(to->pGeometries + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkAccelerationStructureCreateInfoNV(
+    BumpPool* pool,
+    const VkAccelerationStructureCreateInfoNV* from,
+    VkAccelerationStructureCreateInfoNV* 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));
+    }
+    deepcopy_VkAccelerationStructureInfoNV(pool, &from->info, (VkAccelerationStructureInfoNV*)(&to->info));
+}
+
+void deepcopy_VkBindAccelerationStructureMemoryInfoNV(
+    BumpPool* pool,
+    const VkBindAccelerationStructureMemoryInfoNV* from,
+    VkBindAccelerationStructureMemoryInfoNV* 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->pDeviceIndices = nullptr;
+    if (from->pDeviceIndices)
+    {
+        to->pDeviceIndices = (uint32_t*)pool->dupArray(from->pDeviceIndices, from->deviceIndexCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkWriteDescriptorSetAccelerationStructureNV(
+    BumpPool* pool,
+    const VkWriteDescriptorSetAccelerationStructureNV* from,
+    VkWriteDescriptorSetAccelerationStructureNV* 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->pAccelerationStructures = nullptr;
+    if (from->pAccelerationStructures)
+    {
+        to->pAccelerationStructures = (VkAccelerationStructureNV*)pool->dupArray(from->pAccelerationStructures, from->accelerationStructureCount * sizeof(const VkAccelerationStructureNV));
+    }
+}
+
+void deepcopy_VkAccelerationStructureMemoryRequirementsInfoNV(
+    BumpPool* pool,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* from,
+    VkAccelerationStructureMemoryRequirementsInfoNV* 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));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceRayTracingPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayTracingPropertiesNV* from,
+    VkPhysicalDeviceRayTracingPropertiesNV* to)
 {
     (void)pool;
     *to = *from;
@@ -6135,10 +8266,57 @@
     }
 }
 
-void deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void deepcopy_VkTransformMatrixKHR(
     BumpPool* pool,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* from,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* to)
+    const VkTransformMatrixKHR* from,
+    VkTransformMatrixKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    memcpy(to->matrix, from->matrix, ((3)*(4)) * sizeof(float));
+}
+
+void deepcopy_VkAabbPositionsKHR(
+    BumpPool* pool,
+    const VkAabbPositionsKHR* from,
+    VkAabbPositionsKHR* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkAccelerationStructureInstanceKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureInstanceKHR* from,
+    VkAccelerationStructureInstanceKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkTransformMatrixKHR(pool, &from->transform, (VkTransformMatrixKHR*)(&to->transform));
+}
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void deepcopy_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* from,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* from,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* to)
 {
     (void)pool;
     *to = *from;
@@ -6149,17 +8327,30 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pDescriptorCounts = nullptr;
-    if (from->pDescriptorCounts)
+}
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void deepcopy_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* from,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
     {
-        to->pDescriptorCounts = (uint32_t*)pool->dupArray(from->pDescriptorCounts, from->descriptorSetCount * sizeof(const uint32_t));
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
 }
 
-void deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void deepcopy_VkFilterCubicImageViewImageFormatPropertiesEXT(
     BumpPool* pool,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* from,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* to)
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* from,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* to)
 {
     (void)pool;
     *to = *from;
@@ -6173,7 +8364,7 @@
 }
 
 #endif
-#ifdef VK_EXT_shader_viewport_index_layer
+#ifdef VK_QCOM_render_pass_shader_resolve
 #endif
 #ifdef VK_EXT_global_priority
 void deepcopy_VkDeviceQueueGlobalPriorityCreateInfoEXT(
@@ -6250,6 +8441,42 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void deepcopy_VkPipelineCompilerControlCreateInfoAMD(
+    BumpPool* pool,
+    const VkPipelineCompilerControlCreateInfoAMD* from,
+    VkPipelineCompilerControlCreateInfoAMD* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void deepcopy_VkCalibratedTimestampInfoEXT(
+    BumpPool* pool,
+    const VkCalibratedTimestampInfoEXT* from,
+    VkCalibratedTimestampInfoEXT* 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));
+    }
+}
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void deepcopy_VkPhysicalDeviceShaderCorePropertiesAMD(
     BumpPool* pool,
@@ -6268,6 +8495,24 @@
 }
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void deepcopy_VkDeviceMemoryOverallocationCreateInfoAMD(
+    BumpPool* pool,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* from,
+    VkDeviceMemoryOverallocationCreateInfoAMD* 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));
+    }
+}
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void deepcopy_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     BumpPool* pool,
@@ -6308,14 +8553,97 @@
         to->pNext = (const void*)pool->alloc(pNext_size);
         deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
     }
-    to->pVertexBindingDivisors = nullptr;
-    if (from->pVertexBindingDivisors)
+    if ((from) != nullptr)
     {
-        to->pVertexBindingDivisors = (VkVertexInputBindingDivisorDescriptionEXT*)pool->alloc(from->vertexBindingDivisorCount * sizeof(const VkVertexInputBindingDivisorDescriptionEXT));
-        to->vertexBindingDivisorCount = from->vertexBindingDivisorCount;
-        for (uint32_t i = 0; i < (uint32_t)from->vertexBindingDivisorCount; ++i)
+        to->pVertexBindingDivisors = nullptr;
+        if (from->pVertexBindingDivisors)
         {
-            deepcopy_VkVertexInputBindingDivisorDescriptionEXT(pool, from->pVertexBindingDivisors + i, (VkVertexInputBindingDivisorDescriptionEXT*)(to->pVertexBindingDivisors + i));
+            to->pVertexBindingDivisors = (VkVertexInputBindingDivisorDescriptionEXT*)pool->alloc(from->vertexBindingDivisorCount * sizeof(const VkVertexInputBindingDivisorDescriptionEXT));
+            to->vertexBindingDivisorCount = from->vertexBindingDivisorCount;
+            for (uint32_t i = 0; i < (uint32_t)from->vertexBindingDivisorCount; ++i)
+            {
+                deepcopy_VkVertexInputBindingDivisorDescriptionEXT(pool, from->pVertexBindingDivisors + i, (VkVertexInputBindingDivisorDescriptionEXT*)(to->pVertexBindingDivisors + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* from,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GGP_frame_token
+void deepcopy_VkPresentFrameTokenGGP(
+    BumpPool* pool,
+    const VkPresentFrameTokenGGP* from,
+    VkPresentFrameTokenGGP* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void deepcopy_VkPipelineCreationFeedbackEXT(
+    BumpPool* pool,
+    const VkPipelineCreationFeedbackEXT* from,
+    VkPipelineCreationFeedbackEXT* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkPipelineCreationFeedbackCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineCreationFeedbackCreateInfoEXT* from,
+    VkPipelineCreationFeedbackCreateInfoEXT* 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->pPipelineCreationFeedback = nullptr;
+    if (from->pPipelineCreationFeedback)
+    {
+        to->pPipelineCreationFeedback = (VkPipelineCreationFeedbackEXT*)pool->alloc(sizeof(VkPipelineCreationFeedbackEXT));
+        deepcopy_VkPipelineCreationFeedbackEXT(pool, from->pPipelineCreationFeedback, (VkPipelineCreationFeedbackEXT*)(to->pPipelineCreationFeedback));
+    }
+    if ((from) != nullptr)
+    {
+        to->pPipelineStageCreationFeedbacks = nullptr;
+        if (from->pPipelineStageCreationFeedbacks)
+        {
+            to->pPipelineStageCreationFeedbacks = (VkPipelineCreationFeedbackEXT*)pool->alloc(from->pipelineStageCreationFeedbackCount * sizeof(VkPipelineCreationFeedbackEXT));
+            to->pipelineStageCreationFeedbackCount = from->pipelineStageCreationFeedbackCount;
+            for (uint32_t i = 0; i < (uint32_t)from->pipelineStageCreationFeedbackCount; ++i)
+            {
+                deepcopy_VkPipelineCreationFeedbackEXT(pool, from->pPipelineStageCreationFeedbacks + i, (VkPipelineCreationFeedbackEXT*)(to->pPipelineStageCreationFeedbacks + i));
+            }
         }
     }
 }
@@ -6323,6 +8651,152 @@
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void deepcopy_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* from,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_mesh_shader
+void deepcopy_VkPhysicalDeviceMeshShaderFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* from,
+    VkPhysicalDeviceMeshShaderFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceMeshShaderPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* from,
+    VkPhysicalDeviceMeshShaderPropertiesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->maxTaskWorkGroupSize, from->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
+    memcpy(to->maxMeshWorkGroupSize, from->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
+}
+
+void deepcopy_VkDrawMeshTasksIndirectCommandNV(
+    BumpPool* pool,
+    const VkDrawMeshTasksIndirectCommandNV* from,
+    VkDrawMeshTasksIndirectCommandNV* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void deepcopy_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* from,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void deepcopy_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* from,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void deepcopy_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* from,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pExclusiveScissors = nullptr;
+        if (from->pExclusiveScissors)
+        {
+            to->pExclusiveScissors = (VkRect2D*)pool->alloc(from->exclusiveScissorCount * sizeof(const VkRect2D));
+            to->exclusiveScissorCount = from->exclusiveScissorCount;
+            for (uint32_t i = 0; i < (uint32_t)from->exclusiveScissorCount; ++i)
+            {
+                deepcopy_VkRect2D(pool, from->pExclusiveScissors + i, (VkRect2D*)(to->pExclusiveScissors + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* from,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void deepcopy_VkQueueFamilyCheckpointPropertiesNV(
     BumpPool* pool,
@@ -6362,7 +8836,243 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void deepcopy_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* from,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_INTEL_performance_query
+void deepcopy_VkPerformanceValueDataINTEL(
+    BumpPool* pool,
+    const VkPerformanceValueDataINTEL* from,
+    VkPerformanceValueDataINTEL* to)
+{
+    (void)pool;
+    *to = *from;
+    to->valueString = nullptr;
+    if (from->valueString)
+    {
+        to->valueString = pool->strDup(from->valueString);
+    }
+}
+
+void deepcopy_VkPerformanceValueINTEL(
+    BumpPool* pool,
+    const VkPerformanceValueINTEL* from,
+    VkPerformanceValueINTEL* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkPerformanceValueDataINTEL(pool, &from->data, (VkPerformanceValueDataINTEL*)(&to->data));
+}
+
+void deepcopy_VkInitializePerformanceApiInfoINTEL(
+    BumpPool* pool,
+    const VkInitializePerformanceApiInfoINTEL* from,
+    VkInitializePerformanceApiInfoINTEL* 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->pUserData = nullptr;
+    if (from->pUserData)
+    {
+        to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t));
+    }
+}
+
+void deepcopy_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    BumpPool* pool,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* from,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* 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));
+    }
+}
+
+void deepcopy_VkPerformanceMarkerInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceMarkerInfoINTEL* from,
+    VkPerformanceMarkerInfoINTEL* 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));
+    }
+}
+
+void deepcopy_VkPerformanceStreamMarkerInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceStreamMarkerInfoINTEL* from,
+    VkPerformanceStreamMarkerInfoINTEL* 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));
+    }
+}
+
+void deepcopy_VkPerformanceOverrideInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceOverrideInfoINTEL* from,
+    VkPerformanceOverrideInfoINTEL* 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));
+    }
+}
+
+void deepcopy_VkPerformanceConfigurationAcquireInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceConfigurationAcquireInfoINTEL* from,
+    VkPerformanceConfigurationAcquireInfoINTEL* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void deepcopy_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* from,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void deepcopy_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    BumpPool* pool,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* from,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    BumpPool* pool,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* from,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* 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));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void deepcopy_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    BumpPool* pool,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* from,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_metal_surface
+void deepcopy_VkMetalSurfaceCreateInfoEXT(
+    BumpPool* pool,
+    const VkMetalSurfaceCreateInfoEXT* from,
+    VkMetalSurfaceCreateInfoEXT* 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->pLayer = nullptr;
+    if (from->pLayer)
+    {
+        to->pLayer = (CAMetalLayer*)pool->dupArray(from->pLayer, sizeof(const CAMetalLayer));
+    }
+}
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void deepcopy_VkImportColorBufferGOOGLE(
@@ -6414,23 +9124,1834 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void deepcopy_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* from,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* from,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* from,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void deepcopy_VkPhysicalDeviceShaderCoreProperties2AMD(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* from,
+    VkPhysicalDeviceShaderCoreProperties2AMD* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void deepcopy_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    BumpPool* pool,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* from,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void deepcopy_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* from,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void deepcopy_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* from,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->heapBudget, from->heapBudget, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+    memcpy(to->heapUsage, from->heapUsage, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+}
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void deepcopy_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* from,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkMemoryPriorityAllocateInfoEXT(
+    BumpPool* pool,
+    const VkMemoryPriorityAllocateInfoEXT* from,
+    VkMemoryPriorityAllocateInfoEXT* 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));
+    }
+}
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void deepcopy_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* from,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void deepcopy_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* from,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkBufferDeviceAddressCreateInfoEXT(
+    BumpPool* pool,
+    const VkBufferDeviceAddressCreateInfoEXT* from,
+    VkBufferDeviceAddressCreateInfoEXT* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_tooling_info
+void deepcopy_VkPhysicalDeviceToolPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceToolPropertiesEXT* from,
+    VkPhysicalDeviceToolPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    memcpy(to->name, from->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    memcpy(to->version, from->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    memcpy(to->description, from->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    memcpy(to->layer, from->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+}
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+void deepcopy_VkValidationFeaturesEXT(
+    BumpPool* pool,
+    const VkValidationFeaturesEXT* from,
+    VkValidationFeaturesEXT* 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->pEnabledValidationFeatures = nullptr;
+    if (from->pEnabledValidationFeatures)
+    {
+        to->pEnabledValidationFeatures = (VkValidationFeatureEnableEXT*)pool->dupArray(from->pEnabledValidationFeatures, from->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT));
+    }
+    to->pDisabledValidationFeatures = nullptr;
+    if (from->pDisabledValidationFeatures)
+    {
+        to->pDisabledValidationFeatures = (VkValidationFeatureDisableEXT*)pool->dupArray(from->pDisabledValidationFeatures, from->disabledValidationFeatureCount * sizeof(const VkValidationFeatureDisableEXT));
+    }
+}
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void deepcopy_VkCooperativeMatrixPropertiesNV(
+    BumpPool* pool,
+    const VkCooperativeMatrixPropertiesNV* from,
+    VkCooperativeMatrixPropertiesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* from,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* from,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void deepcopy_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* from,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineCoverageReductionStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineCoverageReductionStateCreateInfoNV* from,
+    VkPipelineCoverageReductionStateCreateInfoNV* 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));
+    }
+}
+
+void deepcopy_VkFramebufferMixedSamplesCombinationNV(
+    BumpPool* pool,
+    const VkFramebufferMixedSamplesCombinationNV* from,
+    VkFramebufferMixedSamplesCombinationNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void deepcopy_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* from,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void deepcopy_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* from,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void deepcopy_VkSurfaceFullScreenExclusiveInfoEXT(
+    BumpPool* pool,
+    const VkSurfaceFullScreenExclusiveInfoEXT* from,
+    VkSurfaceFullScreenExclusiveInfoEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    BumpPool* pool,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* from,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    BumpPool* pool,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* from,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_headless_surface
+void deepcopy_VkHeadlessSurfaceCreateInfoEXT(
+    BumpPool* pool,
+    const VkHeadlessSurfaceCreateInfoEXT* from,
+    VkHeadlessSurfaceCreateInfoEXT* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void deepcopy_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* from,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* from,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineRasterizationLineStateCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* from,
+    VkPipelineRasterizationLineStateCreateInfoEXT* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void deepcopy_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* from,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+void deepcopy_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* from,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void deepcopy_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* from,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* from,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void deepcopy_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* from,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* from,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkGraphicsShaderGroupCreateInfoNV(
+    BumpPool* pool,
+    const VkGraphicsShaderGroupCreateInfoNV* from,
+    VkGraphicsShaderGroupCreateInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pStages = nullptr;
+        if (from->pStages)
+        {
+            to->pStages = (VkPipelineShaderStageCreateInfo*)pool->alloc(from->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
+            to->stageCount = from->stageCount;
+            for (uint32_t i = 0; i < (uint32_t)from->stageCount; ++i)
+            {
+                deepcopy_VkPipelineShaderStageCreateInfo(pool, from->pStages + i, (VkPipelineShaderStageCreateInfo*)(to->pStages + i));
+            }
+        }
+    }
+    to->pVertexInputState = nullptr;
+    if (from->pVertexInputState)
+    {
+        to->pVertexInputState = (VkPipelineVertexInputStateCreateInfo*)pool->alloc(sizeof(const VkPipelineVertexInputStateCreateInfo));
+        deepcopy_VkPipelineVertexInputStateCreateInfo(pool, from->pVertexInputState, (VkPipelineVertexInputStateCreateInfo*)(to->pVertexInputState));
+    }
+    to->pTessellationState = nullptr;
+    if (from->pTessellationState)
+    {
+        to->pTessellationState = (VkPipelineTessellationStateCreateInfo*)pool->alloc(sizeof(const VkPipelineTessellationStateCreateInfo));
+        deepcopy_VkPipelineTessellationStateCreateInfo(pool, from->pTessellationState, (VkPipelineTessellationStateCreateInfo*)(to->pTessellationState));
+    }
+}
+
+void deepcopy_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    BumpPool* pool,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* from,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pGroups = nullptr;
+        if (from->pGroups)
+        {
+            to->pGroups = (VkGraphicsShaderGroupCreateInfoNV*)pool->alloc(from->groupCount * sizeof(const VkGraphicsShaderGroupCreateInfoNV));
+            to->groupCount = from->groupCount;
+            for (uint32_t i = 0; i < (uint32_t)from->groupCount; ++i)
+            {
+                deepcopy_VkGraphicsShaderGroupCreateInfoNV(pool, from->pGroups + i, (VkGraphicsShaderGroupCreateInfoNV*)(to->pGroups + i));
+            }
+        }
+    }
+    to->pPipelines = nullptr;
+    if (from->pPipelines)
+    {
+        to->pPipelines = (VkPipeline*)pool->dupArray(from->pPipelines, from->pipelineCount * sizeof(const VkPipeline));
+    }
+}
+
+void deepcopy_VkBindShaderGroupIndirectCommandNV(
+    BumpPool* pool,
+    const VkBindShaderGroupIndirectCommandNV* from,
+    VkBindShaderGroupIndirectCommandNV* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkBindIndexBufferIndirectCommandNV(
+    BumpPool* pool,
+    const VkBindIndexBufferIndirectCommandNV* from,
+    VkBindIndexBufferIndirectCommandNV* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkBindVertexBufferIndirectCommandNV(
+    BumpPool* pool,
+    const VkBindVertexBufferIndirectCommandNV* from,
+    VkBindVertexBufferIndirectCommandNV* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkSetStateFlagsIndirectCommandNV(
+    BumpPool* pool,
+    const VkSetStateFlagsIndirectCommandNV* from,
+    VkSetStateFlagsIndirectCommandNV* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkIndirectCommandsStreamNV(
+    BumpPool* pool,
+    const VkIndirectCommandsStreamNV* from,
+    VkIndirectCommandsStreamNV* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkIndirectCommandsLayoutTokenNV(
+    BumpPool* pool,
+    const VkIndirectCommandsLayoutTokenNV* from,
+    VkIndirectCommandsLayoutTokenNV* 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->pIndexTypes = nullptr;
+    if (from->pIndexTypes)
+    {
+        to->pIndexTypes = (VkIndexType*)pool->dupArray(from->pIndexTypes, from->indexTypeCount * sizeof(const VkIndexType));
+    }
+    to->pIndexTypeValues = nullptr;
+    if (from->pIndexTypeValues)
+    {
+        to->pIndexTypeValues = (uint32_t*)pool->dupArray(from->pIndexTypeValues, from->indexTypeCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkIndirectCommandsLayoutCreateInfoNV(
+    BumpPool* pool,
+    const VkIndirectCommandsLayoutCreateInfoNV* from,
+    VkIndirectCommandsLayoutCreateInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pTokens = nullptr;
+        if (from->pTokens)
+        {
+            to->pTokens = (VkIndirectCommandsLayoutTokenNV*)pool->alloc(from->tokenCount * sizeof(const VkIndirectCommandsLayoutTokenNV));
+            to->tokenCount = from->tokenCount;
+            for (uint32_t i = 0; i < (uint32_t)from->tokenCount; ++i)
+            {
+                deepcopy_VkIndirectCommandsLayoutTokenNV(pool, from->pTokens + i, (VkIndirectCommandsLayoutTokenNV*)(to->pTokens + i));
+            }
+        }
+    }
+    to->pStreamStrides = nullptr;
+    if (from->pStreamStrides)
+    {
+        to->pStreamStrides = (uint32_t*)pool->dupArray(from->pStreamStrides, from->streamCount * sizeof(const uint32_t));
+    }
+}
+
+void deepcopy_VkGeneratedCommandsInfoNV(
+    BumpPool* pool,
+    const VkGeneratedCommandsInfoNV* from,
+    VkGeneratedCommandsInfoNV* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pStreams = nullptr;
+        if (from->pStreams)
+        {
+            to->pStreams = (VkIndirectCommandsStreamNV*)pool->alloc(from->streamCount * sizeof(const VkIndirectCommandsStreamNV));
+            to->streamCount = from->streamCount;
+            for (uint32_t i = 0; i < (uint32_t)from->streamCount; ++i)
+            {
+                deepcopy_VkIndirectCommandsStreamNV(pool, from->pStreams + i, (VkIndirectCommandsStreamNV*)(to->pStreams + i));
+            }
+        }
+    }
+}
+
+void deepcopy_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    BumpPool* pool,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* from,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* from,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* from,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void deepcopy_VkRenderPassTransformBeginInfoQCOM(
+    BumpPool* pool,
+    const VkRenderPassTransformBeginInfoQCOM* from,
+    VkRenderPassTransformBeginInfoQCOM* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    BumpPool* pool,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* from,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+    deepcopy_VkRect2D(pool, &from->renderArea, (VkRect2D*)(&to->renderArea));
+}
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void deepcopy_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* from,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkDeviceMemoryReportCallbackDataEXT(
+    BumpPool* pool,
+    const VkDeviceMemoryReportCallbackDataEXT* from,
+    VkDeviceMemoryReportCallbackDataEXT* 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));
+    }
+}
+
+void deepcopy_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    BumpPool* pool,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* from,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* 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->pUserData = nullptr;
+    if (from->pUserData)
+    {
+        to->pUserData = (void*)pool->dupArray(from->pUserData, sizeof(uint8_t));
+    }
+}
+
+#endif
+#ifdef VK_EXT_robustness2
+void deepcopy_VkPhysicalDeviceRobustness2FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* from,
+    VkPhysicalDeviceRobustness2FeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceRobustness2PropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* from,
+    VkPhysicalDeviceRobustness2PropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void deepcopy_VkSamplerCustomBorderColorCreateInfoEXT(
+    BumpPool* pool,
+    const VkSamplerCustomBorderColorCreateInfoEXT* from,
+    VkSamplerCustomBorderColorCreateInfoEXT* 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));
+    }
+    deepcopy_VkClearColorValue(pool, &from->customBorderColor, (VkClearColorValue*)(&to->customBorderColor));
+}
+
+void deepcopy_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* from,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* from,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void deepcopy_VkPhysicalDevicePrivateDataFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* from,
+    VkPhysicalDevicePrivateDataFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkDevicePrivateDataCreateInfoEXT(
+    BumpPool* pool,
+    const VkDevicePrivateDataCreateInfoEXT* from,
+    VkDevicePrivateDataCreateInfoEXT* 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));
+    }
+}
+
+void deepcopy_VkPrivateDataSlotCreateInfoEXT(
+    BumpPool* pool,
+    const VkPrivateDataSlotCreateInfoEXT* from,
+    VkPrivateDataSlotCreateInfoEXT* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void deepcopy_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* from,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void deepcopy_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* from,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkDeviceDiagnosticsConfigCreateInfoNV(
+    BumpPool* pool,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* from,
+    VkDeviceDiagnosticsConfigCreateInfoNV* 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));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void deepcopy_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* from,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* from,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* from,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* 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));
+    }
+    memcpy(to->combinerOps, from->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+}
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void deepcopy_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* from,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* from,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void deepcopy_VkCopyCommandTransformInfoQCOM(
+    BumpPool* pool,
+    const VkCopyCommandTransformInfoQCOM* from,
+    VkCopyCommandTransformInfoQCOM* 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));
+    }
+}
+
+#endif
+#ifdef VK_EXT_image_robustness
+void deepcopy_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* from,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_4444_formats
+void deepcopy_VkPhysicalDevice4444FormatsFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* from,
+    VkPhysicalDevice4444FormatsFeaturesEXT* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void deepcopy_VkDirectFBSurfaceCreateInfoEXT(
+    BumpPool* pool,
+    const VkDirectFBSurfaceCreateInfoEXT* from,
+    VkDirectFBSurfaceCreateInfoEXT* 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->dfb = nullptr;
+    if (from->dfb)
+    {
+        to->dfb = (IDirectFB*)pool->dupArray(from->dfb, sizeof(IDirectFB));
+    }
+    to->surface = nullptr;
+    if (from->surface)
+    {
+        to->surface = (IDirectFBSurface*)pool->dupArray(from->surface, sizeof(IDirectFBSurface));
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void deepcopy_VkDeviceOrHostAddressKHR(
+    BumpPool* pool,
+    const VkDeviceOrHostAddressKHR* from,
+    VkDeviceOrHostAddressKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    to->hostAddress = nullptr;
+    if (from->hostAddress)
+    {
+        to->hostAddress = (void*)pool->dupArray(from->hostAddress, sizeof(uint8_t));
+    }
+}
+
+void deepcopy_VkDeviceOrHostAddressConstKHR(
+    BumpPool* pool,
+    const VkDeviceOrHostAddressConstKHR* from,
+    VkDeviceOrHostAddressConstKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    to->hostAddress = nullptr;
+    if (from->hostAddress)
+    {
+        to->hostAddress = (void*)pool->dupArray(from->hostAddress, sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkAccelerationStructureBuildRangeInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureBuildRangeInfoKHR* from,
+    VkAccelerationStructureBuildRangeInfoKHR* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkAccelerationStructureGeometryTrianglesDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* from,
+    VkAccelerationStructureGeometryTrianglesDataKHR* 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));
+    }
+    deepcopy_VkDeviceOrHostAddressConstKHR(pool, &from->vertexData, (VkDeviceOrHostAddressConstKHR*)(&to->vertexData));
+    deepcopy_VkDeviceOrHostAddressConstKHR(pool, &from->indexData, (VkDeviceOrHostAddressConstKHR*)(&to->indexData));
+    deepcopy_VkDeviceOrHostAddressConstKHR(pool, &from->transformData, (VkDeviceOrHostAddressConstKHR*)(&to->transformData));
+}
+
+void deepcopy_VkAccelerationStructureGeometryAabbsDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryAabbsDataKHR* from,
+    VkAccelerationStructureGeometryAabbsDataKHR* 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));
+    }
+    deepcopy_VkDeviceOrHostAddressConstKHR(pool, &from->data, (VkDeviceOrHostAddressConstKHR*)(&to->data));
+}
+
+void deepcopy_VkAccelerationStructureGeometryInstancesDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryInstancesDataKHR* from,
+    VkAccelerationStructureGeometryInstancesDataKHR* 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));
+    }
+    deepcopy_VkDeviceOrHostAddressConstKHR(pool, &from->data, (VkDeviceOrHostAddressConstKHR*)(&to->data));
+}
+
+void deepcopy_VkAccelerationStructureGeometryDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryDataKHR* from,
+    VkAccelerationStructureGeometryDataKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    deepcopy_VkAccelerationStructureGeometryTrianglesDataKHR(pool, &from->triangles, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&to->triangles));
+    deepcopy_VkAccelerationStructureGeometryAabbsDataKHR(pool, &from->aabbs, (VkAccelerationStructureGeometryAabbsDataKHR*)(&to->aabbs));
+    deepcopy_VkAccelerationStructureGeometryInstancesDataKHR(pool, &from->instances, (VkAccelerationStructureGeometryInstancesDataKHR*)(&to->instances));
+}
+
+void deepcopy_VkAccelerationStructureGeometryKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryKHR* from,
+    VkAccelerationStructureGeometryKHR* 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));
+    }
+    deepcopy_VkAccelerationStructureGeometryDataKHR(pool, &from->geometry, (VkAccelerationStructureGeometryDataKHR*)(&to->geometry));
+}
+
+void deepcopy_VkAccelerationStructureBuildGeometryInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureBuildGeometryInfoKHR* from,
+    VkAccelerationStructureBuildGeometryInfoKHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pGeometries = nullptr;
+        if (from->pGeometries)
+        {
+            to->pGeometries = (VkAccelerationStructureGeometryKHR*)pool->alloc(from->geometryCount * sizeof(const VkAccelerationStructureGeometryKHR));
+            to->geometryCount = from->geometryCount;
+            for (uint32_t i = 0; i < (uint32_t)from->geometryCount; ++i)
+            {
+                deepcopy_VkAccelerationStructureGeometryKHR(pool, from->pGeometries + i, (VkAccelerationStructureGeometryKHR*)(to->pGeometries + i));
+            }
+        }
+    }
+    deepcopy_VkDeviceOrHostAddressKHR(pool, &from->scratchData, (VkDeviceOrHostAddressKHR*)(&to->scratchData));
+}
+
+void deepcopy_VkAccelerationStructureCreateInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureCreateInfoKHR* from,
+    VkAccelerationStructureCreateInfoKHR* 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));
+    }
+}
+
+void deepcopy_VkWriteDescriptorSetAccelerationStructureKHR(
+    BumpPool* pool,
+    const VkWriteDescriptorSetAccelerationStructureKHR* from,
+    VkWriteDescriptorSetAccelerationStructureKHR* 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->pAccelerationStructures = nullptr;
+    if (from->pAccelerationStructures)
+    {
+        to->pAccelerationStructures = (VkAccelerationStructureKHR*)pool->dupArray(from->pAccelerationStructures, from->accelerationStructureCount * sizeof(const VkAccelerationStructureKHR));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* from,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* from,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkAccelerationStructureDeviceAddressInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureDeviceAddressInfoKHR* from,
+    VkAccelerationStructureDeviceAddressInfoKHR* 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));
+    }
+}
+
+void deepcopy_VkAccelerationStructureVersionInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureVersionInfoKHR* from,
+    VkAccelerationStructureVersionInfoKHR* 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->pVersionData = nullptr;
+    if (from->pVersionData)
+    {
+        to->pVersionData = (uint8_t*)pool->dupArray(from->pVersionData, 2*VK_UUID_SIZE * sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkCopyAccelerationStructureToMemoryInfoKHR(
+    BumpPool* pool,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* from,
+    VkCopyAccelerationStructureToMemoryInfoKHR* 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));
+    }
+    deepcopy_VkDeviceOrHostAddressKHR(pool, &from->dst, (VkDeviceOrHostAddressKHR*)(&to->dst));
+}
+
+void deepcopy_VkCopyMemoryToAccelerationStructureInfoKHR(
+    BumpPool* pool,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* from,
+    VkCopyMemoryToAccelerationStructureInfoKHR* 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));
+    }
+    deepcopy_VkDeviceOrHostAddressConstKHR(pool, &from->src, (VkDeviceOrHostAddressConstKHR*)(&to->src));
+}
+
+void deepcopy_VkCopyAccelerationStructureInfoKHR(
+    BumpPool* pool,
+    const VkCopyAccelerationStructureInfoKHR* from,
+    VkCopyAccelerationStructureInfoKHR* 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));
+    }
+}
+
+void deepcopy_VkAccelerationStructureBuildSizesInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureBuildSizesInfoKHR* from,
+    VkAccelerationStructureBuildSizesInfoKHR* 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));
+    }
+}
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void deepcopy_VkRayTracingShaderGroupCreateInfoKHR(
+    BumpPool* pool,
+    const VkRayTracingShaderGroupCreateInfoKHR* from,
+    VkRayTracingShaderGroupCreateInfoKHR* 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->pShaderGroupCaptureReplayHandle = nullptr;
+    if (from->pShaderGroupCaptureReplayHandle)
+    {
+        to->pShaderGroupCaptureReplayHandle = (void*)pool->dupArray(from->pShaderGroupCaptureReplayHandle, sizeof(const uint8_t));
+    }
+}
+
+void deepcopy_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    BumpPool* pool,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* from,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* 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));
+    }
+}
+
+void deepcopy_VkRayTracingPipelineCreateInfoKHR(
+    BumpPool* pool,
+    const VkRayTracingPipelineCreateInfoKHR* from,
+    VkRayTracingPipelineCreateInfoKHR* 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));
+    }
+    if ((from) != nullptr)
+    {
+        to->pStages = nullptr;
+        if (from->pStages)
+        {
+            to->pStages = (VkPipelineShaderStageCreateInfo*)pool->alloc(from->stageCount * sizeof(const VkPipelineShaderStageCreateInfo));
+            to->stageCount = from->stageCount;
+            for (uint32_t i = 0; i < (uint32_t)from->stageCount; ++i)
+            {
+                deepcopy_VkPipelineShaderStageCreateInfo(pool, from->pStages + i, (VkPipelineShaderStageCreateInfo*)(to->pStages + i));
+            }
+        }
+    }
+    if ((from) != nullptr)
+    {
+        to->pGroups = nullptr;
+        if (from->pGroups)
+        {
+            to->pGroups = (VkRayTracingShaderGroupCreateInfoKHR*)pool->alloc(from->groupCount * sizeof(const VkRayTracingShaderGroupCreateInfoKHR));
+            to->groupCount = from->groupCount;
+            for (uint32_t i = 0; i < (uint32_t)from->groupCount; ++i)
+            {
+                deepcopy_VkRayTracingShaderGroupCreateInfoKHR(pool, from->pGroups + i, (VkRayTracingShaderGroupCreateInfoKHR*)(to->pGroups + i));
+            }
+        }
+    }
+    to->pLibraryInfo = nullptr;
+    if (from->pLibraryInfo)
+    {
+        to->pLibraryInfo = (VkPipelineLibraryCreateInfoKHR*)pool->alloc(sizeof(const VkPipelineLibraryCreateInfoKHR));
+        deepcopy_VkPipelineLibraryCreateInfoKHR(pool, from->pLibraryInfo, (VkPipelineLibraryCreateInfoKHR*)(to->pLibraryInfo));
+    }
+    to->pLibraryInterface = nullptr;
+    if (from->pLibraryInterface)
+    {
+        to->pLibraryInterface = (VkRayTracingPipelineInterfaceCreateInfoKHR*)pool->alloc(sizeof(const VkRayTracingPipelineInterfaceCreateInfoKHR));
+        deepcopy_VkRayTracingPipelineInterfaceCreateInfoKHR(pool, from->pLibraryInterface, (VkRayTracingPipelineInterfaceCreateInfoKHR*)(to->pLibraryInterface));
+    }
+    to->pDynamicState = nullptr;
+    if (from->pDynamicState)
+    {
+        to->pDynamicState = (VkPipelineDynamicStateCreateInfo*)pool->alloc(sizeof(const VkPipelineDynamicStateCreateInfo));
+        deepcopy_VkPipelineDynamicStateCreateInfo(pool, from->pDynamicState, (VkPipelineDynamicStateCreateInfo*)(to->pDynamicState));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* from,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* from,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
+void deepcopy_VkStridedDeviceAddressRegionKHR(
+    BumpPool* pool,
+    const VkStridedDeviceAddressRegionKHR* from,
+    VkStridedDeviceAddressRegionKHR* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+void deepcopy_VkTraceRaysIndirectCommandKHR(
+    BumpPool* pool,
+    const VkTraceRaysIndirectCommandKHR* from,
+    VkTraceRaysIndirectCommandKHR* to)
+{
+    (void)pool;
+    *to = *from;
+}
+
+#endif
+#ifdef VK_KHR_ray_query
+void deepcopy_VkPhysicalDeviceRayQueryFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* from,
+    VkPhysicalDeviceRayQueryFeaturesKHR* to)
+{
+    (void)pool;
+    *to = *from;
+    size_t pNext_size = goldfish_vk_extension_struct_size(from->pNext);
+    to->pNext = nullptr;
+    if (pNext_size)
+    {
+        to->pNext = (void*)pool->alloc(pNext_size);
+        deepcopy_extension_struct(pool, from->pNext, (void*)(to->pNext));
+    }
+}
+
 #endif
 void deepcopy_extension_struct(
     BumpPool* pool,
@@ -6545,9 +11066,9 @@
             deepcopy_VkPhysicalDeviceMultiviewProperties(pool, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            deepcopy_VkPhysicalDeviceVariablePointerFeatures(pool, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
+            deepcopy_VkPhysicalDeviceVariablePointersFeatures(pool, reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -6635,9 +11156,201 @@
             deepcopy_VkPhysicalDeviceMaintenance3Properties(pool, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension), reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures(pool, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
+            deepcopy_VkPhysicalDeviceShaderDrawParametersFeatures(pool, reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceVulkan11Features(pool, reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension), reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceVulkan11Properties(pool, reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension), reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceVulkan12Features(pool, reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension), reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceVulkan12Properties(pool, reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension), reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            deepcopy_VkImageFormatListCreateInfo(pool, reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension), reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            deepcopy_VkPhysicalDevice8BitStorageFeatures(pool, reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension), reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceDriverProperties(pool, reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceShaderAtomicInt64Features(pool, reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(pool, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceFloatControlsProperties(pool, reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfo(pool, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension), reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceDescriptorIndexingFeatures(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceDescriptorIndexingProperties(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfo(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupport(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            deepcopy_VkSubpassDescriptionDepthStencilResolve(pool, reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension), reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceDepthStencilResolveProperties(pool, reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceScalarBlockLayoutFeatures(pool, reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            deepcopy_VkImageStencilUsageCreateInfo(pool, reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension), reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            deepcopy_VkSamplerReductionModeCreateInfo(pool, reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension), reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceSamplerFilterMinmaxProperties(pool, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceVulkanMemoryModelFeatures(pool, reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceImagelessFramebufferFeatures(pool, reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            deepcopy_VkFramebufferAttachmentsCreateInfo(pool, reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension), reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            deepcopy_VkRenderPassAttachmentBeginInfo(pool, reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension), reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(pool, reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(pool, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(pool, reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            deepcopy_VkAttachmentReferenceStencilLayout(pool, reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension), reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            deepcopy_VkAttachmentDescriptionStencilLayout(pool, reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension), reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceHostQueryResetFeatures(pool, reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceTimelineSemaphoreFeatures(pool, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            deepcopy_VkPhysicalDeviceTimelineSemaphoreProperties(pool, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension), reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            deepcopy_VkSemaphoreTypeCreateInfo(pool, reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension), reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            deepcopy_VkTimelineSemaphoreSubmitInfo(pool, reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension), reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            deepcopy_VkPhysicalDeviceBufferDeviceAddressFeatures(pool, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension), reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            deepcopy_VkBufferOpaqueCaptureAddressCreateInfo(pool, reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension), reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            deepcopy_VkMemoryOpaqueCaptureAddressAllocateInfo(pool, reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension), reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
             break;
         }
 #endif
@@ -6736,24 +11449,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            deepcopy_VkImageFormatListCreateInfoKHR(pool, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension), reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
+            deepcopy_VkPhysicalDevicePerformanceQueryFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            deepcopy_VkPhysicalDevicePerformanceQueryPropertiesKHR(pool, reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            deepcopy_VkQueryPoolPerformanceCreateInfoKHR(pool, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>(structExtension), reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            deepcopy_VkPerformanceQuerySubmitInfoKHR(pool, reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>(structExtension), reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
+            deepcopy_VkPhysicalDevicePortabilitySubsetFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            deepcopy_VkPhysicalDevicePortabilitySubsetPropertiesKHR(pool, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(pool, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            deepcopy_VkPhysicalDeviceShaderClockFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            deepcopy_VkFragmentShadingRateAttachmentInfoKHR(pool, reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>(structExtension), reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            deepcopy_VkPipelineFragmentShadingRateStateCreateInfoKHR(pool, reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension), reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(pool, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            deepcopy_VkSurfaceProtectedCapabilitiesKHR(pool, reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>(structExtension), reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension_out));
             break;
         }
 #endif
@@ -6795,6 +11571,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceTransformFeedbackFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceTransformFeedbackPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            deepcopy_VkPipelineRasterizationStateStreamCreateInfoEXT(pool, reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -6802,6 +11595,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceCornerSampledImageFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -6840,6 +11640,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            deepcopy_VkImageViewASTCDecodeModeEXT(pool, reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(structExtension), reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceASTCDecodeFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -6911,6 +11730,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceDepthClipEnableFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            deepcopy_VkPipelineRasterizationDepthClipStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -6940,15 +11771,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            deepcopy_VkSamplerReductionModeCreateInfoEXT(pool, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension), reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
+            deepcopy_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
+            deepcopy_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            deepcopy_VkWriteDescriptorSetInlineUniformBlockEXT(pool, reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension), reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            deepcopy_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(pool, reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension), reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -7005,6 +11846,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            deepcopy_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(pool, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            deepcopy_VkDrmFormatModifierPropertiesListEXT(pool, reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension), reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            deepcopy_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(pool, reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            deepcopy_VkImageDrmFormatModifierListCreateInfoEXT(pool, reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension), reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            deepcopy_VkImageDrmFormatModifierExplicitCreateInfoEXT(pool, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension), reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -7012,30 +11887,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(pool, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension), reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
+            deepcopy_VkPipelineViewportShadingRateImageStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
+            deepcopy_VkPhysicalDeviceShadingRateImageFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
+            deepcopy_VkPhysicalDeviceShadingRateImagePropertiesNV(pool, reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
+            deepcopy_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(pool, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension), reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
+            deepcopy_VkWriteDescriptorSetAccelerationStructureNV(pool, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>(structExtension), reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            deepcopy_VkPhysicalDeviceRayTracingPropertiesNV(pool, reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            deepcopy_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            deepcopy_VkPhysicalDeviceImageViewImageFormatInfoEXT(pool, reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            deepcopy_VkFilterCubicImageViewImageFormatPropertiesEXT(pool, reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension), reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -7058,6 +11964,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            deepcopy_VkPipelineCompilerControlCreateInfoAMD(pool, reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>(structExtension), reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -7065,6 +11978,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            deepcopy_VkDeviceMemoryOverallocationCreateInfoAMD(pool, reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension), reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -7076,6 +11996,70 @@
             deepcopy_VkPipelineVertexInputDivisorStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            deepcopy_VkPresentFrameTokenGGP(pool, reinterpret_cast<const VkPresentFrameTokenGGP*>(structExtension), reinterpret_cast<VkPresentFrameTokenGGP*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            deepcopy_VkPipelineCreationFeedbackCreateInfoEXT(pool, reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceMeshShaderFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            deepcopy_VkPhysicalDeviceMeshShaderPropertiesNV(pool, reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceShaderImageFootprintFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            deepcopy_VkPipelineViewportExclusiveScissorStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceExclusiveScissorFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -7084,6 +12068,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            deepcopy_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(pool, reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            deepcopy_VkQueryPoolPerformanceQueryCreateInfoINTEL(pool, reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension), reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDevicePCIBusInfoPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            deepcopy_VkDisplayNativeHdrSurfaceCapabilitiesAMD(pool, reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension), reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            deepcopy_VkSwapchainDisplayNativeHdrCreateInfoAMD(pool, reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension), reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -7101,6 +12118,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            deepcopy_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(pool, reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            deepcopy_VkPhysicalDeviceShaderCoreProperties2AMD(pool, reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            deepcopy_VkPhysicalDeviceCoherentMemoryFeaturesAMD(pool, reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension), reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceMemoryBudgetPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceMemoryPriorityFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            deepcopy_VkMemoryPriorityAllocateInfoEXT(pool, reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>(structExtension), reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            deepcopy_VkBufferDeviceAddressCreateInfoEXT(pool, reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>(structExtension), reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            deepcopy_VkValidationFeaturesEXT(pool, reinterpret_cast<const VkValidationFeaturesEXT*>(structExtension), reinterpret_cast<VkValidationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceCooperativeMatrixFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            deepcopy_VkPhysicalDeviceCooperativeMatrixPropertiesNV(pool, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceCoverageReductionModeFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            deepcopy_VkPipelineCoverageReductionStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            deepcopy_VkSurfaceFullScreenExclusiveInfoEXT(pool, reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension), reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            deepcopy_VkSurfaceCapabilitiesFullScreenExclusiveEXT(pool, reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension), reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            deepcopy_VkSurfaceFullScreenExclusiveWin32InfoEXT(pool, reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension), reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceLineRasterizationFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceLineRasterizationPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            deepcopy_VkPipelineRasterizationLineStateCreateInfoEXT(pool, reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension), reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            deepcopy_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(pool, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            deepcopy_VkGraphicsPipelineShaderGroupsCreateInfoNV(pool, reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension), reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            deepcopy_VkRenderPassTransformBeginInfoQCOM(pool, reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>(structExtension), reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            deepcopy_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(pool, reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension), reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            deepcopy_VkDeviceDeviceMemoryReportCreateInfoEXT(pool, reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension), reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceRobustness2FeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceRobustness2PropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            deepcopy_VkSamplerCustomBorderColorCreateInfoEXT(pool, reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension), reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceCustomBorderColorPropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceCustomBorderColorFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDevicePrivateDataFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            deepcopy_VkDevicePrivateDataCreateInfoEXT(pool, reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>(structExtension), reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            deepcopy_VkDeviceDiagnosticsConfigCreateInfoNV(pool, reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension), reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            deepcopy_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(pool, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            deepcopy_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(pool, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            deepcopy_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(pool, reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension), reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(pool, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            deepcopy_VkCopyCommandTransformInfoQCOM(pool, reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>(structExtension), reinterpret_cast<VkCopyCommandTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDeviceImageRobustnessFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            deepcopy_VkPhysicalDevice4444FormatsFeaturesEXT(pool, reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension), reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            deepcopy_VkWriteDescriptorSetAccelerationStructureKHR(pool, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension), reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceAccelerationStructureFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceAccelerationStructurePropertiesKHR(pool, reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(pool, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            deepcopy_VkPhysicalDeviceRayQueryFeaturesKHR(pool, reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension), reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
         default:
         {
             return;
diff --git a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
index aeb18b4..ef555eb 100644
--- a/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
+++ b/system/vulkan_enc/goldfish_vk_deepcopy_guest.h
@@ -43,46 +43,126 @@
 namespace goldfish_vk {
 
 #ifdef VK_VERSION_1_0
-void deepcopy_VkApplicationInfo(
+void deepcopy_VkExtent2D(
     BumpPool* pool,
-    const VkApplicationInfo* from,
-    VkApplicationInfo* to);
-
-void deepcopy_VkInstanceCreateInfo(
-    BumpPool* pool,
-    const VkInstanceCreateInfo* from,
-    VkInstanceCreateInfo* to);
-
-void deepcopy_VkAllocationCallbacks(
-    BumpPool* pool,
-    const VkAllocationCallbacks* from,
-    VkAllocationCallbacks* to);
-
-void deepcopy_VkPhysicalDeviceFeatures(
-    BumpPool* pool,
-    const VkPhysicalDeviceFeatures* from,
-    VkPhysicalDeviceFeatures* to);
-
-void deepcopy_VkFormatProperties(
-    BumpPool* pool,
-    const VkFormatProperties* from,
-    VkFormatProperties* to);
+    const VkExtent2D* from,
+    VkExtent2D* to);
 
 void deepcopy_VkExtent3D(
     BumpPool* pool,
     const VkExtent3D* from,
     VkExtent3D* to);
 
+void deepcopy_VkOffset2D(
+    BumpPool* pool,
+    const VkOffset2D* from,
+    VkOffset2D* to);
+
+void deepcopy_VkOffset3D(
+    BumpPool* pool,
+    const VkOffset3D* from,
+    VkOffset3D* to);
+
+void deepcopy_VkRect2D(
+    BumpPool* pool,
+    const VkRect2D* from,
+    VkRect2D* to);
+
+void deepcopy_VkBaseInStructure(
+    BumpPool* pool,
+    const VkBaseInStructure* from,
+    VkBaseInStructure* to);
+
+void deepcopy_VkBaseOutStructure(
+    BumpPool* pool,
+    const VkBaseOutStructure* from,
+    VkBaseOutStructure* to);
+
+void deepcopy_VkBufferMemoryBarrier(
+    BumpPool* pool,
+    const VkBufferMemoryBarrier* from,
+    VkBufferMemoryBarrier* to);
+
+void deepcopy_VkDispatchIndirectCommand(
+    BumpPool* pool,
+    const VkDispatchIndirectCommand* from,
+    VkDispatchIndirectCommand* to);
+
+void deepcopy_VkDrawIndexedIndirectCommand(
+    BumpPool* pool,
+    const VkDrawIndexedIndirectCommand* from,
+    VkDrawIndexedIndirectCommand* to);
+
+void deepcopy_VkDrawIndirectCommand(
+    BumpPool* pool,
+    const VkDrawIndirectCommand* from,
+    VkDrawIndirectCommand* to);
+
+void deepcopy_VkImageSubresourceRange(
+    BumpPool* pool,
+    const VkImageSubresourceRange* from,
+    VkImageSubresourceRange* to);
+
+void deepcopy_VkImageMemoryBarrier(
+    BumpPool* pool,
+    const VkImageMemoryBarrier* from,
+    VkImageMemoryBarrier* to);
+
+void deepcopy_VkMemoryBarrier(
+    BumpPool* pool,
+    const VkMemoryBarrier* from,
+    VkMemoryBarrier* to);
+
+void deepcopy_VkAllocationCallbacks(
+    BumpPool* pool,
+    const VkAllocationCallbacks* from,
+    VkAllocationCallbacks* to);
+
+void deepcopy_VkApplicationInfo(
+    BumpPool* pool,
+    const VkApplicationInfo* from,
+    VkApplicationInfo* to);
+
+void deepcopy_VkFormatProperties(
+    BumpPool* pool,
+    const VkFormatProperties* from,
+    VkFormatProperties* to);
+
 void deepcopy_VkImageFormatProperties(
     BumpPool* pool,
     const VkImageFormatProperties* from,
     VkImageFormatProperties* to);
 
+void deepcopy_VkInstanceCreateInfo(
+    BumpPool* pool,
+    const VkInstanceCreateInfo* from,
+    VkInstanceCreateInfo* to);
+
+void deepcopy_VkMemoryHeap(
+    BumpPool* pool,
+    const VkMemoryHeap* from,
+    VkMemoryHeap* to);
+
+void deepcopy_VkMemoryType(
+    BumpPool* pool,
+    const VkMemoryType* from,
+    VkMemoryType* to);
+
+void deepcopy_VkPhysicalDeviceFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceFeatures* from,
+    VkPhysicalDeviceFeatures* to);
+
 void deepcopy_VkPhysicalDeviceLimits(
     BumpPool* pool,
     const VkPhysicalDeviceLimits* from,
     VkPhysicalDeviceLimits* to);
 
+void deepcopy_VkPhysicalDeviceMemoryProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceMemoryProperties* from,
+    VkPhysicalDeviceMemoryProperties* to);
+
 void deepcopy_VkPhysicalDeviceSparseProperties(
     BumpPool* pool,
     const VkPhysicalDeviceSparseProperties* from,
@@ -98,21 +178,6 @@
     const VkQueueFamilyProperties* from,
     VkQueueFamilyProperties* to);
 
-void deepcopy_VkMemoryType(
-    BumpPool* pool,
-    const VkMemoryType* from,
-    VkMemoryType* to);
-
-void deepcopy_VkMemoryHeap(
-    BumpPool* pool,
-    const VkMemoryHeap* from,
-    VkMemoryHeap* to);
-
-void deepcopy_VkPhysicalDeviceMemoryProperties(
-    BumpPool* pool,
-    const VkPhysicalDeviceMemoryProperties* from,
-    VkPhysicalDeviceMemoryProperties* to);
-
 void deepcopy_VkDeviceQueueCreateInfo(
     BumpPool* pool,
     const VkDeviceQueueCreateInfo* from,
@@ -138,31 +203,21 @@
     const VkSubmitInfo* from,
     VkSubmitInfo* to);
 
-void deepcopy_VkMemoryAllocateInfo(
-    BumpPool* pool,
-    const VkMemoryAllocateInfo* from,
-    VkMemoryAllocateInfo* to);
-
 void deepcopy_VkMappedMemoryRange(
     BumpPool* pool,
     const VkMappedMemoryRange* from,
     VkMappedMemoryRange* to);
 
+void deepcopy_VkMemoryAllocateInfo(
+    BumpPool* pool,
+    const VkMemoryAllocateInfo* from,
+    VkMemoryAllocateInfo* to);
+
 void deepcopy_VkMemoryRequirements(
     BumpPool* pool,
     const VkMemoryRequirements* from,
     VkMemoryRequirements* to);
 
-void deepcopy_VkSparseImageFormatProperties(
-    BumpPool* pool,
-    const VkSparseImageFormatProperties* from,
-    VkSparseImageFormatProperties* to);
-
-void deepcopy_VkSparseImageMemoryRequirements(
-    BumpPool* pool,
-    const VkSparseImageMemoryRequirements* from,
-    VkSparseImageMemoryRequirements* to);
-
 void deepcopy_VkSparseMemoryBind(
     BumpPool* pool,
     const VkSparseMemoryBind* from,
@@ -183,11 +238,6 @@
     const VkImageSubresource* from,
     VkImageSubresource* to);
 
-void deepcopy_VkOffset3D(
-    BumpPool* pool,
-    const VkOffset3D* from,
-    VkOffset3D* to);
-
 void deepcopy_VkSparseImageMemoryBind(
     BumpPool* pool,
     const VkSparseImageMemoryBind* from,
@@ -203,6 +253,16 @@
     const VkBindSparseInfo* from,
     VkBindSparseInfo* to);
 
+void deepcopy_VkSparseImageFormatProperties(
+    BumpPool* pool,
+    const VkSparseImageFormatProperties* from,
+    VkSparseImageFormatProperties* to);
+
+void deepcopy_VkSparseImageMemoryRequirements(
+    BumpPool* pool,
+    const VkSparseImageMemoryRequirements* from,
+    VkSparseImageMemoryRequirements* to);
+
 void deepcopy_VkFenceCreateInfo(
     BumpPool* pool,
     const VkFenceCreateInfo* from,
@@ -248,11 +308,6 @@
     const VkComponentMapping* from,
     VkComponentMapping* to);
 
-void deepcopy_VkImageSubresourceRange(
-    BumpPool* pool,
-    const VkImageSubresourceRange* from,
-    VkImageSubresourceRange* to);
-
 void deepcopy_VkImageViewCreateInfo(
     BumpPool* pool,
     const VkImageViewCreateInfo* from,
@@ -283,6 +338,11 @@
     const VkPipelineShaderStageCreateInfo* from,
     VkPipelineShaderStageCreateInfo* to);
 
+void deepcopy_VkComputePipelineCreateInfo(
+    BumpPool* pool,
+    const VkComputePipelineCreateInfo* from,
+    VkComputePipelineCreateInfo* to);
+
 void deepcopy_VkVertexInputBindingDescription(
     BumpPool* pool,
     const VkVertexInputBindingDescription* from,
@@ -313,21 +373,6 @@
     const VkViewport* from,
     VkViewport* to);
 
-void deepcopy_VkOffset2D(
-    BumpPool* pool,
-    const VkOffset2D* from,
-    VkOffset2D* to);
-
-void deepcopy_VkExtent2D(
-    BumpPool* pool,
-    const VkExtent2D* from,
-    VkExtent2D* to);
-
-void deepcopy_VkRect2D(
-    BumpPool* pool,
-    const VkRect2D* from,
-    VkRect2D* to);
-
 void deepcopy_VkPipelineViewportStateCreateInfo(
     BumpPool* pool,
     const VkPipelineViewportStateCreateInfo* from,
@@ -373,11 +418,6 @@
     const VkGraphicsPipelineCreateInfo* from,
     VkGraphicsPipelineCreateInfo* to);
 
-void deepcopy_VkComputePipelineCreateInfo(
-    BumpPool* pool,
-    const VkComputePipelineCreateInfo* from,
-    VkComputePipelineCreateInfo* to);
-
 void deepcopy_VkPushConstantRange(
     BumpPool* pool,
     const VkPushConstantRange* from,
@@ -393,15 +433,20 @@
     const VkSamplerCreateInfo* from,
     VkSamplerCreateInfo* to);
 
-void deepcopy_VkDescriptorSetLayoutBinding(
+void deepcopy_VkCopyDescriptorSet(
     BumpPool* pool,
-    const VkDescriptorSetLayoutBinding* from,
-    VkDescriptorSetLayoutBinding* to);
+    const VkCopyDescriptorSet* from,
+    VkCopyDescriptorSet* to);
 
-void deepcopy_VkDescriptorSetLayoutCreateInfo(
+void deepcopy_VkDescriptorBufferInfo(
     BumpPool* pool,
-    const VkDescriptorSetLayoutCreateInfo* from,
-    VkDescriptorSetLayoutCreateInfo* to);
+    const VkDescriptorBufferInfo* from,
+    VkDescriptorBufferInfo* to);
+
+void deepcopy_VkDescriptorImageInfo(
+    BumpPool* pool,
+    const VkDescriptorImageInfo* from,
+    VkDescriptorImageInfo* to);
 
 void deepcopy_VkDescriptorPoolSize(
     BumpPool* pool,
@@ -418,31 +463,21 @@
     const VkDescriptorSetAllocateInfo* from,
     VkDescriptorSetAllocateInfo* to);
 
-void deepcopy_VkDescriptorImageInfo(
+void deepcopy_VkDescriptorSetLayoutBinding(
     BumpPool* pool,
-    const VkDescriptorImageInfo* from,
-    VkDescriptorImageInfo* to);
+    const VkDescriptorSetLayoutBinding* from,
+    VkDescriptorSetLayoutBinding* to);
 
-void deepcopy_VkDescriptorBufferInfo(
+void deepcopy_VkDescriptorSetLayoutCreateInfo(
     BumpPool* pool,
-    const VkDescriptorBufferInfo* from,
-    VkDescriptorBufferInfo* to);
+    const VkDescriptorSetLayoutCreateInfo* from,
+    VkDescriptorSetLayoutCreateInfo* to);
 
 void deepcopy_VkWriteDescriptorSet(
     BumpPool* pool,
     const VkWriteDescriptorSet* from,
     VkWriteDescriptorSet* to);
 
-void deepcopy_VkCopyDescriptorSet(
-    BumpPool* pool,
-    const VkCopyDescriptorSet* from,
-    VkCopyDescriptorSet* to);
-
-void deepcopy_VkFramebufferCreateInfo(
-    BumpPool* pool,
-    const VkFramebufferCreateInfo* from,
-    VkFramebufferCreateInfo* to);
-
 void deepcopy_VkAttachmentDescription(
     BumpPool* pool,
     const VkAttachmentDescription* from,
@@ -453,6 +488,11 @@
     const VkAttachmentReference* from,
     VkAttachmentReference* to);
 
+void deepcopy_VkFramebufferCreateInfo(
+    BumpPool* pool,
+    const VkFramebufferCreateInfo* from,
+    VkFramebufferCreateInfo* to);
+
 void deepcopy_VkSubpassDescription(
     BumpPool* pool,
     const VkSubpassDescription* from,
@@ -498,16 +538,6 @@
     const VkImageSubresourceLayers* from,
     VkImageSubresourceLayers* to);
 
-void deepcopy_VkImageCopy(
-    BumpPool* pool,
-    const VkImageCopy* from,
-    VkImageCopy* to);
-
-void deepcopy_VkImageBlit(
-    BumpPool* pool,
-    const VkImageBlit* from,
-    VkImageBlit* to);
-
 void deepcopy_VkBufferImageCopy(
     BumpPool* pool,
     const VkBufferImageCopy* from,
@@ -538,56 +568,26 @@
     const VkClearRect* from,
     VkClearRect* to);
 
+void deepcopy_VkImageBlit(
+    BumpPool* pool,
+    const VkImageBlit* from,
+    VkImageBlit* to);
+
+void deepcopy_VkImageCopy(
+    BumpPool* pool,
+    const VkImageCopy* from,
+    VkImageCopy* to);
+
 void deepcopy_VkImageResolve(
     BumpPool* pool,
     const VkImageResolve* from,
     VkImageResolve* to);
 
-void deepcopy_VkMemoryBarrier(
-    BumpPool* pool,
-    const VkMemoryBarrier* from,
-    VkMemoryBarrier* to);
-
-void deepcopy_VkBufferMemoryBarrier(
-    BumpPool* pool,
-    const VkBufferMemoryBarrier* from,
-    VkBufferMemoryBarrier* to);
-
-void deepcopy_VkImageMemoryBarrier(
-    BumpPool* pool,
-    const VkImageMemoryBarrier* from,
-    VkImageMemoryBarrier* to);
-
 void deepcopy_VkRenderPassBeginInfo(
     BumpPool* pool,
     const VkRenderPassBeginInfo* from,
     VkRenderPassBeginInfo* to);
 
-void deepcopy_VkDispatchIndirectCommand(
-    BumpPool* pool,
-    const VkDispatchIndirectCommand* from,
-    VkDispatchIndirectCommand* to);
-
-void deepcopy_VkDrawIndexedIndirectCommand(
-    BumpPool* pool,
-    const VkDrawIndexedIndirectCommand* from,
-    VkDrawIndexedIndirectCommand* to);
-
-void deepcopy_VkDrawIndirectCommand(
-    BumpPool* pool,
-    const VkDrawIndirectCommand* from,
-    VkDrawIndirectCommand* to);
-
-void deepcopy_VkBaseOutStructure(
-    BumpPool* pool,
-    const VkBaseOutStructure* from,
-    VkBaseOutStructure* to);
-
-void deepcopy_VkBaseInStructure(
-    BumpPool* pool,
-    const VkBaseInStructure* from,
-    VkBaseInStructure* to);
-
 #endif
 #ifdef VK_VERSION_1_1
 void deepcopy_VkPhysicalDeviceSubgroupProperties(
@@ -775,10 +775,12 @@
     const VkPhysicalDeviceMultiviewProperties* from,
     VkPhysicalDeviceMultiviewProperties* to);
 
-void deepcopy_VkPhysicalDeviceVariablePointerFeatures(
+void deepcopy_VkPhysicalDeviceVariablePointersFeatures(
     BumpPool* pool,
-    const VkPhysicalDeviceVariablePointerFeatures* from,
-    VkPhysicalDeviceVariablePointerFeatures* to);
+    const VkPhysicalDeviceVariablePointersFeatures* from,
+    VkPhysicalDeviceVariablePointersFeatures* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceVariablePointersFeatures, deepcopy_VkPhysicalDeviceVariablePointerFeatures);
 
 void deepcopy_VkPhysicalDeviceProtectedMemoryFeatures(
     BumpPool* pool,
@@ -925,10 +927,269 @@
     const VkDescriptorSetLayoutSupport* from,
     VkDescriptorSetLayoutSupport* to);
 
-void deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures(
+void deepcopy_VkPhysicalDeviceShaderDrawParametersFeatures(
     BumpPool* pool,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* from,
-    VkPhysicalDeviceShaderDrawParameterFeatures* to);
+    const VkPhysicalDeviceShaderDrawParametersFeatures* from,
+    VkPhysicalDeviceShaderDrawParametersFeatures* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceShaderDrawParametersFeatures, deepcopy_VkPhysicalDeviceShaderDrawParameterFeatures);
+
+#endif
+#ifdef VK_VERSION_1_2
+void deepcopy_VkPhysicalDeviceVulkan11Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan11Features* from,
+    VkPhysicalDeviceVulkan11Features* to);
+
+void deepcopy_VkPhysicalDeviceVulkan11Properties(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan11Properties* from,
+    VkPhysicalDeviceVulkan11Properties* to);
+
+void deepcopy_VkPhysicalDeviceVulkan12Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan12Features* from,
+    VkPhysicalDeviceVulkan12Features* to);
+
+void deepcopy_VkConformanceVersion(
+    BumpPool* pool,
+    const VkConformanceVersion* from,
+    VkConformanceVersion* to);
+
+void deepcopy_VkPhysicalDeviceVulkan12Properties(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkan12Properties* from,
+    VkPhysicalDeviceVulkan12Properties* to);
+
+void deepcopy_VkImageFormatListCreateInfo(
+    BumpPool* pool,
+    const VkImageFormatListCreateInfo* from,
+    VkImageFormatListCreateInfo* to);
+
+void deepcopy_VkAttachmentDescription2(
+    BumpPool* pool,
+    const VkAttachmentDescription2* from,
+    VkAttachmentDescription2* to);
+
+void deepcopy_VkAttachmentReference2(
+    BumpPool* pool,
+    const VkAttachmentReference2* from,
+    VkAttachmentReference2* to);
+
+void deepcopy_VkSubpassDescription2(
+    BumpPool* pool,
+    const VkSubpassDescription2* from,
+    VkSubpassDescription2* to);
+
+void deepcopy_VkSubpassDependency2(
+    BumpPool* pool,
+    const VkSubpassDependency2* from,
+    VkSubpassDependency2* to);
+
+void deepcopy_VkRenderPassCreateInfo2(
+    BumpPool* pool,
+    const VkRenderPassCreateInfo2* from,
+    VkRenderPassCreateInfo2* to);
+
+void deepcopy_VkSubpassBeginInfo(
+    BumpPool* pool,
+    const VkSubpassBeginInfo* from,
+    VkSubpassBeginInfo* to);
+
+void deepcopy_VkSubpassEndInfo(
+    BumpPool* pool,
+    const VkSubpassEndInfo* from,
+    VkSubpassEndInfo* to);
+
+void deepcopy_VkPhysicalDevice8BitStorageFeatures(
+    BumpPool* pool,
+    const VkPhysicalDevice8BitStorageFeatures* from,
+    VkPhysicalDevice8BitStorageFeatures* to);
+
+void deepcopy_VkPhysicalDeviceDriverProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceDriverProperties* from,
+    VkPhysicalDeviceDriverProperties* to);
+
+void deepcopy_VkPhysicalDeviceShaderAtomicInt64Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderAtomicInt64Features* from,
+    VkPhysicalDeviceShaderAtomicInt64Features* to);
+
+void deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderFloat16Int8Features* from,
+    VkPhysicalDeviceShaderFloat16Int8Features* to);
+
+void deepcopy_VkPhysicalDeviceFloatControlsProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceFloatControlsProperties* from,
+    VkPhysicalDeviceFloatControlsProperties* to);
+
+void deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    BumpPool* pool,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* from,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* to);
+
+void deepcopy_VkPhysicalDeviceDescriptorIndexingFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* from,
+    VkPhysicalDeviceDescriptorIndexingFeatures* to);
+
+void deepcopy_VkPhysicalDeviceDescriptorIndexingProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceDescriptorIndexingProperties* from,
+    VkPhysicalDeviceDescriptorIndexingProperties* to);
+
+void deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    BumpPool* pool,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* from,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* to);
+
+void deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    BumpPool* pool,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* from,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* to);
+
+void deepcopy_VkSubpassDescriptionDepthStencilResolve(
+    BumpPool* pool,
+    const VkSubpassDescriptionDepthStencilResolve* from,
+    VkSubpassDescriptionDepthStencilResolve* to);
+
+void deepcopy_VkPhysicalDeviceDepthStencilResolveProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceDepthStencilResolveProperties* from,
+    VkPhysicalDeviceDepthStencilResolveProperties* to);
+
+void deepcopy_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* from,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* to);
+
+void deepcopy_VkImageStencilUsageCreateInfo(
+    BumpPool* pool,
+    const VkImageStencilUsageCreateInfo* from,
+    VkImageStencilUsageCreateInfo* to);
+
+void deepcopy_VkSamplerReductionModeCreateInfo(
+    BumpPool* pool,
+    const VkSamplerReductionModeCreateInfo* from,
+    VkSamplerReductionModeCreateInfo* to);
+
+void deepcopy_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* from,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* to);
+
+void deepcopy_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* from,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* to);
+
+void deepcopy_VkPhysicalDeviceImagelessFramebufferFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* from,
+    VkPhysicalDeviceImagelessFramebufferFeatures* to);
+
+void deepcopy_VkFramebufferAttachmentImageInfo(
+    BumpPool* pool,
+    const VkFramebufferAttachmentImageInfo* from,
+    VkFramebufferAttachmentImageInfo* to);
+
+void deepcopy_VkFramebufferAttachmentsCreateInfo(
+    BumpPool* pool,
+    const VkFramebufferAttachmentsCreateInfo* from,
+    VkFramebufferAttachmentsCreateInfo* to);
+
+void deepcopy_VkRenderPassAttachmentBeginInfo(
+    BumpPool* pool,
+    const VkRenderPassAttachmentBeginInfo* from,
+    VkRenderPassAttachmentBeginInfo* to);
+
+void deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* from,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* to);
+
+void deepcopy_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* from,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* to);
+
+void deepcopy_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* from,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* to);
+
+void deepcopy_VkAttachmentReferenceStencilLayout(
+    BumpPool* pool,
+    const VkAttachmentReferenceStencilLayout* from,
+    VkAttachmentReferenceStencilLayout* to);
+
+void deepcopy_VkAttachmentDescriptionStencilLayout(
+    BumpPool* pool,
+    const VkAttachmentDescriptionStencilLayout* from,
+    VkAttachmentDescriptionStencilLayout* to);
+
+void deepcopy_VkPhysicalDeviceHostQueryResetFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceHostQueryResetFeatures* from,
+    VkPhysicalDeviceHostQueryResetFeatures* to);
+
+void deepcopy_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* from,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* to);
+
+void deepcopy_VkPhysicalDeviceTimelineSemaphoreProperties(
+    BumpPool* pool,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* from,
+    VkPhysicalDeviceTimelineSemaphoreProperties* to);
+
+void deepcopy_VkSemaphoreTypeCreateInfo(
+    BumpPool* pool,
+    const VkSemaphoreTypeCreateInfo* from,
+    VkSemaphoreTypeCreateInfo* to);
+
+void deepcopy_VkTimelineSemaphoreSubmitInfo(
+    BumpPool* pool,
+    const VkTimelineSemaphoreSubmitInfo* from,
+    VkTimelineSemaphoreSubmitInfo* to);
+
+void deepcopy_VkSemaphoreWaitInfo(
+    BumpPool* pool,
+    const VkSemaphoreWaitInfo* from,
+    VkSemaphoreWaitInfo* to);
+
+void deepcopy_VkSemaphoreSignalInfo(
+    BumpPool* pool,
+    const VkSemaphoreSignalInfo* from,
+    VkSemaphoreSignalInfo* to);
+
+void deepcopy_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    BumpPool* pool,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* from,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* to);
+
+void deepcopy_VkBufferDeviceAddressInfo(
+    BumpPool* pool,
+    const VkBufferDeviceAddressInfo* from,
+    VkBufferDeviceAddressInfo* to);
+
+void deepcopy_VkBufferOpaqueCaptureAddressCreateInfo(
+    BumpPool* pool,
+    const VkBufferOpaqueCaptureAddressCreateInfo* from,
+    VkBufferOpaqueCaptureAddressCreateInfo* to);
+
+void deepcopy_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    BumpPool* pool,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* from,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* to);
+
+void deepcopy_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    BumpPool* pool,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* from,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* to);
 
 #endif
 #ifdef VK_KHR_surface
@@ -986,26 +1247,21 @@
 
 #endif
 #ifdef VK_KHR_display
-void deepcopy_VkDisplayPropertiesKHR(
-    BumpPool* pool,
-    const VkDisplayPropertiesKHR* from,
-    VkDisplayPropertiesKHR* to);
-
 void deepcopy_VkDisplayModeParametersKHR(
     BumpPool* pool,
     const VkDisplayModeParametersKHR* from,
     VkDisplayModeParametersKHR* to);
 
-void deepcopy_VkDisplayModePropertiesKHR(
-    BumpPool* pool,
-    const VkDisplayModePropertiesKHR* from,
-    VkDisplayModePropertiesKHR* to);
-
 void deepcopy_VkDisplayModeCreateInfoKHR(
     BumpPool* pool,
     const VkDisplayModeCreateInfoKHR* from,
     VkDisplayModeCreateInfoKHR* to);
 
+void deepcopy_VkDisplayModePropertiesKHR(
+    BumpPool* pool,
+    const VkDisplayModePropertiesKHR* from,
+    VkDisplayModePropertiesKHR* to);
+
 void deepcopy_VkDisplayPlaneCapabilitiesKHR(
     BumpPool* pool,
     const VkDisplayPlaneCapabilitiesKHR* from,
@@ -1016,6 +1272,11 @@
     const VkDisplayPlanePropertiesKHR* from,
     VkDisplayPlanePropertiesKHR* to);
 
+void deepcopy_VkDisplayPropertiesKHR(
+    BumpPool* pool,
+    const VkDisplayPropertiesKHR* from,
+    VkDisplayPropertiesKHR* to);
+
 void deepcopy_VkDisplaySurfaceCreateInfoKHR(
     BumpPool* pool,
     const VkDisplaySurfaceCreateInfoKHR* from,
@@ -1050,13 +1311,6 @@
     VkWaylandSurfaceCreateInfoKHR* to);
 
 #endif
-#ifdef VK_KHR_mir_surface
-void deepcopy_VkMirSurfaceCreateInfoKHR(
-    BumpPool* pool,
-    const VkMirSurfaceCreateInfoKHR* from,
-    VkMirSurfaceCreateInfoKHR* to);
-
-#endif
 #ifdef VK_KHR_android_surface
 void deepcopy_VkAndroidSurfaceCreateInfoKHR(
     BumpPool* pool,
@@ -1074,20 +1328,80 @@
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
 #ifdef VK_KHR_multiview
+DEFINE_ALIAS_FUNCTION(deepcopy_VkRenderPassMultiviewCreateInfo, deepcopy_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceMultiviewFeatures, deepcopy_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceMultiviewProperties, deepcopy_VkPhysicalDeviceMultiviewPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceFeatures2, deepcopy_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceProperties2, deepcopy_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkFormatProperties2, deepcopy_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkImageFormatProperties2, deepcopy_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceImageFormatInfo2, deepcopy_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkQueueFamilyProperties2, deepcopy_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceMemoryProperties2, deepcopy_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSparseImageFormatProperties2, deepcopy_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceSparseImageFormatInfo2, deepcopy_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
 #endif
 #ifdef VK_KHR_device_group
+DEFINE_ALIAS_FUNCTION(deepcopy_VkMemoryAllocateFlagsInfo, deepcopy_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDeviceGroupRenderPassBeginInfo, deepcopy_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDeviceGroupCommandBufferBeginInfo, deepcopy_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDeviceGroupSubmitInfo, deepcopy_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDeviceGroupBindSparseInfo, deepcopy_VkDeviceGroupBindSparseInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBindBufferMemoryDeviceGroupInfo, deepcopy_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBindImageMemoryDeviceGroupInfo, deepcopy_VkBindImageMemoryDeviceGroupInfoKHR);
+
 #endif
 #ifdef VK_KHR_shader_draw_parameters
 #endif
 #ifdef VK_KHR_maintenance1
 #endif
 #ifdef VK_KHR_device_group_creation
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceGroupProperties, deepcopy_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDeviceGroupDeviceCreateInfo, deepcopy_VkDeviceGroupDeviceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_capabilities
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExternalMemoryProperties, deepcopy_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceExternalImageFormatInfo, deepcopy_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExternalImageFormatProperties, deepcopy_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceExternalBufferInfo, deepcopy_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExternalBufferProperties, deepcopy_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceIDProperties, deepcopy_VkPhysicalDeviceIDPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_memory
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExternalMemoryImageCreateInfo, deepcopy_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExternalMemoryBufferCreateInfo, deepcopy_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExportMemoryAllocateInfo, deepcopy_VkExportMemoryAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_win32
 void deepcopy_VkImportMemoryWin32HandleInfoKHR(
@@ -1136,8 +1450,14 @@
 
 #endif
 #ifdef VK_KHR_external_semaphore_capabilities
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceExternalSemaphoreInfo, deepcopy_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExternalSemaphoreProperties, deepcopy_VkExternalSemaphorePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExportSemaphoreCreateInfo, deepcopy_VkExportSemaphoreCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void deepcopy_VkImportSemaphoreWin32HandleInfoKHR(
@@ -1180,7 +1500,15 @@
     VkPhysicalDevicePushDescriptorPropertiesKHR* to);
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceShaderFloat16Int8Features, deepcopy_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceShaderFloat16Int8Features, deepcopy_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+#endif
 #ifdef VK_KHR_16bit_storage
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDevice16BitStorageFeatures, deepcopy_VkPhysicalDevice16BitStorageFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_incremental_present
 void deepcopy_VkRectLayerKHR(
@@ -1200,42 +1528,35 @@
 
 #endif
 #ifdef VK_KHR_descriptor_update_template
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDescriptorUpdateTemplateEntry, deepcopy_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDescriptorUpdateTemplateCreateInfo, deepcopy_VkDescriptorUpdateTemplateCreateInfoKHR);
+
+#endif
+#ifdef VK_KHR_imageless_framebuffer
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceImagelessFramebufferFeatures, deepcopy_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkFramebufferAttachmentsCreateInfo, deepcopy_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkFramebufferAttachmentImageInfo, deepcopy_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkRenderPassAttachmentBeginInfo, deepcopy_VkRenderPassAttachmentBeginInfoKHR);
+
 #endif
 #ifdef VK_KHR_create_renderpass2
-void deepcopy_VkAttachmentDescription2KHR(
-    BumpPool* pool,
-    const VkAttachmentDescription2KHR* from,
-    VkAttachmentDescription2KHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkRenderPassCreateInfo2, deepcopy_VkRenderPassCreateInfo2KHR);
 
-void deepcopy_VkAttachmentReference2KHR(
-    BumpPool* pool,
-    const VkAttachmentReference2KHR* from,
-    VkAttachmentReference2KHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkAttachmentDescription2, deepcopy_VkAttachmentDescription2KHR);
 
-void deepcopy_VkSubpassDescription2KHR(
-    BumpPool* pool,
-    const VkSubpassDescription2KHR* from,
-    VkSubpassDescription2KHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkAttachmentReference2, deepcopy_VkAttachmentReference2KHR);
 
-void deepcopy_VkSubpassDependency2KHR(
-    BumpPool* pool,
-    const VkSubpassDependency2KHR* from,
-    VkSubpassDependency2KHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSubpassDescription2, deepcopy_VkSubpassDescription2KHR);
 
-void deepcopy_VkRenderPassCreateInfo2KHR(
-    BumpPool* pool,
-    const VkRenderPassCreateInfo2KHR* from,
-    VkRenderPassCreateInfo2KHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSubpassDependency2, deepcopy_VkSubpassDependency2KHR);
 
-void deepcopy_VkSubpassBeginInfoKHR(
-    BumpPool* pool,
-    const VkSubpassBeginInfoKHR* from,
-    VkSubpassBeginInfoKHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSubpassBeginInfo, deepcopy_VkSubpassBeginInfoKHR);
 
-void deepcopy_VkSubpassEndInfoKHR(
-    BumpPool* pool,
-    const VkSubpassEndInfoKHR* from,
-    VkSubpassEndInfoKHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSubpassEndInfo, deepcopy_VkSubpassEndInfoKHR);
 
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -1246,8 +1567,14 @@
 
 #endif
 #ifdef VK_KHR_external_fence_capabilities
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceExternalFenceInfo, deepcopy_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExternalFenceProperties, deepcopy_VkExternalFencePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_fence
+DEFINE_ALIAS_FUNCTION(deepcopy_VkExportFenceCreateInfo, deepcopy_VkExportFenceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_fence_win32
 void deepcopy_VkImportFenceWin32HandleInfoKHR(
@@ -1278,7 +1605,59 @@
     VkFenceGetFdInfoKHR* to);
 
 #endif
+#ifdef VK_KHR_performance_query
+void deepcopy_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* from,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* to);
+
+void deepcopy_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* from,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* to);
+
+void deepcopy_VkPerformanceCounterKHR(
+    BumpPool* pool,
+    const VkPerformanceCounterKHR* from,
+    VkPerformanceCounterKHR* to);
+
+void deepcopy_VkPerformanceCounterDescriptionKHR(
+    BumpPool* pool,
+    const VkPerformanceCounterDescriptionKHR* from,
+    VkPerformanceCounterDescriptionKHR* to);
+
+void deepcopy_VkQueryPoolPerformanceCreateInfoKHR(
+    BumpPool* pool,
+    const VkQueryPoolPerformanceCreateInfoKHR* from,
+    VkQueryPoolPerformanceCreateInfoKHR* to);
+
+void deepcopy_VkPerformanceCounterResultKHR(
+    BumpPool* pool,
+    const VkPerformanceCounterResultKHR* from,
+    VkPerformanceCounterResultKHR* to);
+
+void deepcopy_VkAcquireProfilingLockInfoKHR(
+    BumpPool* pool,
+    const VkAcquireProfilingLockInfoKHR* from,
+    VkAcquireProfilingLockInfoKHR* to);
+
+void deepcopy_VkPerformanceQuerySubmitInfoKHR(
+    BumpPool* pool,
+    const VkPerformanceQuerySubmitInfoKHR* from,
+    VkPerformanceQuerySubmitInfoKHR* to);
+
+#endif
 #ifdef VK_KHR_maintenance2
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDevicePointClippingProperties, deepcopy_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkRenderPassInputAttachmentAspectCreateInfo, deepcopy_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkInputAttachmentAspectReference, deepcopy_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkImageViewUsageCreateInfo, deepcopy_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPipelineTessellationDomainOriginStateCreateInfo, deepcopy_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void deepcopy_VkPhysicalDeviceSurfaceInfo2KHR(
@@ -1298,6 +1677,10 @@
 
 #endif
 #ifdef VK_KHR_variable_pointers
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceVariablePointersFeatures, deepcopy_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceVariablePointersFeatures, deepcopy_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_get_display_properties2
 void deepcopy_VkDisplayProperties2KHR(
@@ -1327,40 +1710,296 @@
 
 #endif
 #ifdef VK_KHR_dedicated_allocation
+DEFINE_ALIAS_FUNCTION(deepcopy_VkMemoryDedicatedRequirements, deepcopy_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkMemoryDedicatedAllocateInfo, deepcopy_VkMemoryDedicatedAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_storage_buffer_storage_class
 #endif
 #ifdef VK_KHR_relaxed_block_layout
 #endif
 #ifdef VK_KHR_get_memory_requirements2
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBufferMemoryRequirementsInfo2, deepcopy_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkImageMemoryRequirementsInfo2, deepcopy_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkImageSparseMemoryRequirementsInfo2, deepcopy_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkMemoryRequirements2, deepcopy_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSparseImageMemoryRequirements2, deepcopy_VkSparseImageMemoryRequirements2KHR);
+
 #endif
 #ifdef VK_KHR_image_format_list
-void deepcopy_VkImageFormatListCreateInfoKHR(
-    BumpPool* pool,
-    const VkImageFormatListCreateInfoKHR* from,
-    VkImageFormatListCreateInfoKHR* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkImageFormatListCreateInfo, deepcopy_VkImageFormatListCreateInfoKHR);
 
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSamplerYcbcrConversionCreateInfo, deepcopy_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSamplerYcbcrConversionInfo, deepcopy_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBindImagePlaneMemoryInfo, deepcopy_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkImagePlaneMemoryRequirementsInfo, deepcopy_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeatures, deepcopy_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSamplerYcbcrConversionImageFormatProperties, deepcopy_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_bind_memory2
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBindBufferMemoryInfo, deepcopy_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBindImageMemoryInfo, deepcopy_VkBindImageMemoryInfoKHR);
+
+#endif
+#ifdef VK_KHR_portability_subset
+void deepcopy_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* from,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* to);
+
+void deepcopy_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* from,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* to);
+
 #endif
 #ifdef VK_KHR_maintenance3
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceMaintenance3Properties, deepcopy_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDescriptorSetLayoutSupport, deepcopy_VkDescriptorSetLayoutSupportKHR);
+
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
-#ifdef VK_KHR_8bit_storage
-void deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR(
-    BumpPool* pool,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* from,
-    VkPhysicalDevice8BitStorageFeaturesKHR* to);
+#ifdef VK_KHR_shader_subgroup_extended_types
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, deepcopy_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void deepcopy_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_8bit_storage
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDevice8BitStorageFeatures, deepcopy_VkPhysicalDevice8BitStorageFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceShaderAtomicInt64Features, deepcopy_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_clock
+void deepcopy_VkPhysicalDeviceShaderClockFeaturesKHR(
     BumpPool* pool,
-    const VkPhysicalDeviceShaderFloat16Int8Features* from,
-    VkPhysicalDeviceShaderFloat16Int8Features* to);
+    const VkPhysicalDeviceShaderClockFeaturesKHR* from,
+    VkPhysicalDeviceShaderClockFeaturesKHR* to);
+
+#endif
+#ifdef VK_KHR_driver_properties
+DEFINE_ALIAS_FUNCTION(deepcopy_VkConformanceVersion, deepcopy_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceDriverProperties, deepcopy_VkPhysicalDeviceDriverPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_shader_float_controls
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceFloatControlsProperties, deepcopy_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSubpassDescriptionDepthStencilResolve, deepcopy_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceDepthStencilResolveProperties, deepcopy_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceTimelineSemaphoreFeatures, deepcopy_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceTimelineSemaphoreProperties, deepcopy_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSemaphoreTypeCreateInfo, deepcopy_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkTimelineSemaphoreSubmitInfo, deepcopy_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSemaphoreWaitInfo, deepcopy_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSemaphoreSignalInfo, deepcopy_VkSemaphoreSignalInfoKHR);
+
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceVulkanMemoryModelFeatures, deepcopy_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void deepcopy_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* from,
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* to);
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void deepcopy_VkFragmentShadingRateAttachmentInfoKHR(
+    BumpPool* pool,
+    const VkFragmentShadingRateAttachmentInfoKHR* from,
+    VkFragmentShadingRateAttachmentInfoKHR* to);
+
+void deepcopy_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    BumpPool* pool,
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* from,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* to);
+
+void deepcopy_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* from,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* to);
+
+void deepcopy_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* from,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* to);
+
+void deepcopy_VkPhysicalDeviceFragmentShadingRateKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateKHR* from,
+    VkPhysicalDeviceFragmentShadingRateKHR* to);
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void deepcopy_VkSurfaceProtectedCapabilitiesKHR(
+    BumpPool* pool,
+    const VkSurfaceProtectedCapabilitiesKHR* from,
+    VkSurfaceProtectedCapabilitiesKHR* to);
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, deepcopy_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkAttachmentReferenceStencilLayout, deepcopy_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkAttachmentDescriptionStencilLayout, deepcopy_VkAttachmentDescriptionStencilLayoutKHR);
+
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, deepcopy_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_buffer_device_address
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceBufferDeviceAddressFeatures, deepcopy_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBufferDeviceAddressInfo, deepcopy_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBufferOpaqueCaptureAddressCreateInfo, deepcopy_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkMemoryOpaqueCaptureAddressAllocateInfo, deepcopy_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDeviceMemoryOpaqueCaptureAddressInfo, deepcopy_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void deepcopy_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* from,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* to);
+
+void deepcopy_VkPipelineInfoKHR(
+    BumpPool* pool,
+    const VkPipelineInfoKHR* from,
+    VkPipelineInfoKHR* to);
+
+void deepcopy_VkPipelineExecutablePropertiesKHR(
+    BumpPool* pool,
+    const VkPipelineExecutablePropertiesKHR* from,
+    VkPipelineExecutablePropertiesKHR* to);
+
+void deepcopy_VkPipelineExecutableInfoKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableInfoKHR* from,
+    VkPipelineExecutableInfoKHR* to);
+
+void deepcopy_VkPipelineExecutableStatisticValueKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableStatisticValueKHR* from,
+    VkPipelineExecutableStatisticValueKHR* to);
+
+void deepcopy_VkPipelineExecutableStatisticKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableStatisticKHR* from,
+    VkPipelineExecutableStatisticKHR* to);
+
+void deepcopy_VkPipelineExecutableInternalRepresentationKHR(
+    BumpPool* pool,
+    const VkPipelineExecutableInternalRepresentationKHR* from,
+    VkPipelineExecutableInternalRepresentationKHR* to);
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void deepcopy_VkPipelineLibraryCreateInfoKHR(
+    BumpPool* pool,
+    const VkPipelineLibraryCreateInfoKHR* from,
+    VkPipelineLibraryCreateInfoKHR* to);
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void deepcopy_VkBufferCopy2KHR(
+    BumpPool* pool,
+    const VkBufferCopy2KHR* from,
+    VkBufferCopy2KHR* to);
+
+void deepcopy_VkCopyBufferInfo2KHR(
+    BumpPool* pool,
+    const VkCopyBufferInfo2KHR* from,
+    VkCopyBufferInfo2KHR* to);
+
+void deepcopy_VkImageCopy2KHR(
+    BumpPool* pool,
+    const VkImageCopy2KHR* from,
+    VkImageCopy2KHR* to);
+
+void deepcopy_VkCopyImageInfo2KHR(
+    BumpPool* pool,
+    const VkCopyImageInfo2KHR* from,
+    VkCopyImageInfo2KHR* to);
+
+void deepcopy_VkBufferImageCopy2KHR(
+    BumpPool* pool,
+    const VkBufferImageCopy2KHR* from,
+    VkBufferImageCopy2KHR* to);
+
+void deepcopy_VkCopyBufferToImageInfo2KHR(
+    BumpPool* pool,
+    const VkCopyBufferToImageInfo2KHR* from,
+    VkCopyBufferToImageInfo2KHR* to);
+
+void deepcopy_VkCopyImageToBufferInfo2KHR(
+    BumpPool* pool,
+    const VkCopyImageToBufferInfo2KHR* from,
+    VkCopyImageToBufferInfo2KHR* to);
+
+void deepcopy_VkImageBlit2KHR(
+    BumpPool* pool,
+    const VkImageBlit2KHR* from,
+    VkImageBlit2KHR* to);
+
+void deepcopy_VkBlitImageInfo2KHR(
+    BumpPool* pool,
+    const VkBlitImageInfo2KHR* from,
+    VkBlitImageInfo2KHR* to);
+
+void deepcopy_VkImageResolve2KHR(
+    BumpPool* pool,
+    const VkImageResolve2KHR* from,
+    VkImageResolve2KHR* to);
+
+void deepcopy_VkResolveImageInfo2KHR(
+    BumpPool* pool,
+    const VkResolveImageInfo2KHR* from,
+    VkResolveImageInfo2KHR* to);
 
 #endif
 #ifdef VK_ANDROID_native_buffer
@@ -1430,6 +2069,35 @@
     VkDedicatedAllocationMemoryAllocateInfoNV* to);
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void deepcopy_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* from,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* from,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* to);
+
+void deepcopy_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* from,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* to);
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void deepcopy_VkImageViewHandleInfoNVX(
+    BumpPool* pool,
+    const VkImageViewHandleInfoNVX* from,
+    VkImageViewHandleInfoNVX* to);
+
+void deepcopy_VkImageViewAddressPropertiesNVX(
+    BumpPool* pool,
+    const VkImageViewAddressPropertiesNVX* from,
+    VkImageViewAddressPropertiesNVX* to);
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -1459,6 +2127,20 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void deepcopy_VkStreamDescriptorSurfaceCreateInfoGGP(
+    BumpPool* pool,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* from,
+    VkStreamDescriptorSurfaceCreateInfoGGP* to);
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void deepcopy_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* from,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* to);
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -1517,6 +2199,25 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void deepcopy_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* from,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void deepcopy_VkImageViewASTCDecodeModeEXT(
+    BumpPool* pool,
+    const VkImageViewASTCDecodeModeEXT* from,
+    VkImageViewASTCDecodeModeEXT* to);
+
+void deepcopy_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* from,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* to);
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void deepcopy_VkConditionalRenderingBeginInfoEXT(
     BumpPool* pool,
@@ -1534,78 +2235,6 @@
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* to);
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void deepcopy_VkDeviceGeneratedCommandsFeaturesNVX(
-    BumpPool* pool,
-    const VkDeviceGeneratedCommandsFeaturesNVX* from,
-    VkDeviceGeneratedCommandsFeaturesNVX* to);
-
-void deepcopy_VkDeviceGeneratedCommandsLimitsNVX(
-    BumpPool* pool,
-    const VkDeviceGeneratedCommandsLimitsNVX* from,
-    VkDeviceGeneratedCommandsLimitsNVX* to);
-
-void deepcopy_VkIndirectCommandsTokenNVX(
-    BumpPool* pool,
-    const VkIndirectCommandsTokenNVX* from,
-    VkIndirectCommandsTokenNVX* to);
-
-void deepcopy_VkIndirectCommandsLayoutTokenNVX(
-    BumpPool* pool,
-    const VkIndirectCommandsLayoutTokenNVX* from,
-    VkIndirectCommandsLayoutTokenNVX* to);
-
-void deepcopy_VkIndirectCommandsLayoutCreateInfoNVX(
-    BumpPool* pool,
-    const VkIndirectCommandsLayoutCreateInfoNVX* from,
-    VkIndirectCommandsLayoutCreateInfoNVX* to);
-
-void deepcopy_VkCmdProcessCommandsInfoNVX(
-    BumpPool* pool,
-    const VkCmdProcessCommandsInfoNVX* from,
-    VkCmdProcessCommandsInfoNVX* to);
-
-void deepcopy_VkCmdReserveSpaceForCommandsInfoNVX(
-    BumpPool* pool,
-    const VkCmdReserveSpaceForCommandsInfoNVX* from,
-    VkCmdReserveSpaceForCommandsInfoNVX* to);
-
-void deepcopy_VkObjectTableCreateInfoNVX(
-    BumpPool* pool,
-    const VkObjectTableCreateInfoNVX* from,
-    VkObjectTableCreateInfoNVX* to);
-
-void deepcopy_VkObjectTableEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableEntryNVX* from,
-    VkObjectTableEntryNVX* to);
-
-void deepcopy_VkObjectTablePipelineEntryNVX(
-    BumpPool* pool,
-    const VkObjectTablePipelineEntryNVX* from,
-    VkObjectTablePipelineEntryNVX* to);
-
-void deepcopy_VkObjectTableDescriptorSetEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableDescriptorSetEntryNVX* from,
-    VkObjectTableDescriptorSetEntryNVX* to);
-
-void deepcopy_VkObjectTableVertexBufferEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableVertexBufferEntryNVX* from,
-    VkObjectTableVertexBufferEntryNVX* to);
-
-void deepcopy_VkObjectTableIndexBufferEntryNVX(
-    BumpPool* pool,
-    const VkObjectTableIndexBufferEntryNVX* from,
-    VkObjectTableIndexBufferEntryNVX* to);
-
-void deepcopy_VkObjectTablePushConstantEntryNVX(
-    BumpPool* pool,
-    const VkObjectTablePushConstantEntryNVX* from,
-    VkObjectTablePushConstantEntryNVX* to);
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void deepcopy_VkViewportWScalingNV(
     BumpPool* pool,
@@ -1722,6 +2351,18 @@
     VkPipelineRasterizationConservativeStateCreateInfoEXT* to);
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void deepcopy_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* from,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* to);
+
+void deepcopy_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* from,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* to);
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -1750,26 +2391,23 @@
     VkMacOSSurfaceCreateInfoMVK* to);
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void deepcopy_VkDebugUtilsObjectNameInfoEXT(
-    BumpPool* pool,
-    const VkDebugUtilsObjectNameInfoEXT* from,
-    VkDebugUtilsObjectNameInfoEXT* to);
-
-void deepcopy_VkDebugUtilsObjectTagInfoEXT(
-    BumpPool* pool,
-    const VkDebugUtilsObjectTagInfoEXT* from,
-    VkDebugUtilsObjectTagInfoEXT* to);
-
 void deepcopy_VkDebugUtilsLabelEXT(
     BumpPool* pool,
     const VkDebugUtilsLabelEXT* from,
     VkDebugUtilsLabelEXT* to);
 
+void deepcopy_VkDebugUtilsObjectNameInfoEXT(
+    BumpPool* pool,
+    const VkDebugUtilsObjectNameInfoEXT* from,
+    VkDebugUtilsObjectNameInfoEXT* to);
+
 void deepcopy_VkDebugUtilsMessengerCallbackDataEXT(
     BumpPool* pool,
     const VkDebugUtilsMessengerCallbackDataEXT* from,
@@ -1780,6 +2418,11 @@
     const VkDebugUtilsMessengerCreateInfoEXT* from,
     VkDebugUtilsMessengerCreateInfoEXT* to);
 
+void deepcopy_VkDebugUtilsObjectTagInfoEXT(
+    BumpPool* pool,
+    const VkDebugUtilsObjectTagInfoEXT* from,
+    VkDebugUtilsObjectTagInfoEXT* to);
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void deepcopy_VkAndroidHardwareBufferUsageANDROID(
@@ -1814,15 +2457,9 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void deepcopy_VkSamplerReductionModeCreateInfoEXT(
-    BumpPool* pool,
-    const VkSamplerReductionModeCreateInfoEXT* from,
-    VkSamplerReductionModeCreateInfoEXT* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkSamplerReductionModeCreateInfo, deepcopy_VkSamplerReductionModeCreateInfoEXT);
 
-void deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    BumpPool* pool,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* from,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceSamplerFilterMinmaxProperties, deepcopy_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
 #endif
 #ifdef VK_AMD_gpu_shader_int16
@@ -1831,6 +2468,28 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void deepcopy_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* from,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* from,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* to);
+
+void deepcopy_VkWriteDescriptorSetInlineUniformBlockEXT(
+    BumpPool* pool,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* from,
+    VkWriteDescriptorSetInlineUniformBlockEXT* to);
+
+void deepcopy_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    BumpPool* pool,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* from,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* to);
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -1908,8 +2567,52 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void deepcopy_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* from,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* to);
+
+void deepcopy_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* from,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* to);
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void deepcopy_VkDrmFormatModifierPropertiesEXT(
+    BumpPool* pool,
+    const VkDrmFormatModifierPropertiesEXT* from,
+    VkDrmFormatModifierPropertiesEXT* to);
+
+void deepcopy_VkDrmFormatModifierPropertiesListEXT(
+    BumpPool* pool,
+    const VkDrmFormatModifierPropertiesListEXT* from,
+    VkDrmFormatModifierPropertiesListEXT* to);
+
+void deepcopy_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* from,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* to);
+
+void deepcopy_VkImageDrmFormatModifierListCreateInfoEXT(
+    BumpPool* pool,
+    const VkImageDrmFormatModifierListCreateInfoEXT* from,
+    VkImageDrmFormatModifierListCreateInfoEXT* to);
+
+void deepcopy_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    BumpPool* pool,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* from,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* to);
+
+void deepcopy_VkImageDrmFormatModifierPropertiesEXT(
+    BumpPool* pool,
+    const VkImageDrmFormatModifierPropertiesEXT* from,
+    VkImageDrmFormatModifierPropertiesEXT* to);
+
+#endif
 #ifdef VK_EXT_validation_cache
 void deepcopy_VkValidationCacheCreateInfoEXT(
     BumpPool* pool,
@@ -1923,34 +2626,165 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    BumpPool* pool,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* from,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfo, deepcopy_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    BumpPool* pool,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* from,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceDescriptorIndexingFeatures, deepcopy_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    BumpPool* pool,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* from,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceDescriptorIndexingProperties, deepcopy_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    BumpPool* pool,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* from,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfo, deepcopy_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    BumpPool* pool,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* from,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* to);
+DEFINE_ALIAS_FUNCTION(deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupport, deepcopy_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+void deepcopy_VkShadingRatePaletteNV(
+    BumpPool* pool,
+    const VkShadingRatePaletteNV* from,
+    VkShadingRatePaletteNV* to);
+
+void deepcopy_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* from,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* to);
+
+void deepcopy_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* from,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* to);
+
+void deepcopy_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* from,
+    VkPhysicalDeviceShadingRateImagePropertiesNV* to);
+
+void deepcopy_VkCoarseSampleLocationNV(
+    BumpPool* pool,
+    const VkCoarseSampleLocationNV* from,
+    VkCoarseSampleLocationNV* to);
+
+void deepcopy_VkCoarseSampleOrderCustomNV(
+    BumpPool* pool,
+    const VkCoarseSampleOrderCustomNV* from,
+    VkCoarseSampleOrderCustomNV* to);
+
+void deepcopy_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* from,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* to);
+
+#endif
+#ifdef VK_NV_ray_tracing
+void deepcopy_VkRayTracingShaderGroupCreateInfoNV(
+    BumpPool* pool,
+    const VkRayTracingShaderGroupCreateInfoNV* from,
+    VkRayTracingShaderGroupCreateInfoNV* to);
+
+void deepcopy_VkRayTracingPipelineCreateInfoNV(
+    BumpPool* pool,
+    const VkRayTracingPipelineCreateInfoNV* from,
+    VkRayTracingPipelineCreateInfoNV* to);
+
+void deepcopy_VkGeometryTrianglesNV(
+    BumpPool* pool,
+    const VkGeometryTrianglesNV* from,
+    VkGeometryTrianglesNV* to);
+
+void deepcopy_VkGeometryAABBNV(
+    BumpPool* pool,
+    const VkGeometryAABBNV* from,
+    VkGeometryAABBNV* to);
+
+void deepcopy_VkGeometryDataNV(
+    BumpPool* pool,
+    const VkGeometryDataNV* from,
+    VkGeometryDataNV* to);
+
+void deepcopy_VkGeometryNV(
+    BumpPool* pool,
+    const VkGeometryNV* from,
+    VkGeometryNV* to);
+
+void deepcopy_VkAccelerationStructureInfoNV(
+    BumpPool* pool,
+    const VkAccelerationStructureInfoNV* from,
+    VkAccelerationStructureInfoNV* to);
+
+void deepcopy_VkAccelerationStructureCreateInfoNV(
+    BumpPool* pool,
+    const VkAccelerationStructureCreateInfoNV* from,
+    VkAccelerationStructureCreateInfoNV* to);
+
+void deepcopy_VkBindAccelerationStructureMemoryInfoNV(
+    BumpPool* pool,
+    const VkBindAccelerationStructureMemoryInfoNV* from,
+    VkBindAccelerationStructureMemoryInfoNV* to);
+
+void deepcopy_VkWriteDescriptorSetAccelerationStructureNV(
+    BumpPool* pool,
+    const VkWriteDescriptorSetAccelerationStructureNV* from,
+    VkWriteDescriptorSetAccelerationStructureNV* to);
+
+void deepcopy_VkAccelerationStructureMemoryRequirementsInfoNV(
+    BumpPool* pool,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* from,
+    VkAccelerationStructureMemoryRequirementsInfoNV* to);
+
+void deepcopy_VkPhysicalDeviceRayTracingPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayTracingPropertiesNV* from,
+    VkPhysicalDeviceRayTracingPropertiesNV* to);
+
+void deepcopy_VkTransformMatrixKHR(
+    BumpPool* pool,
+    const VkTransformMatrixKHR* from,
+    VkTransformMatrixKHR* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkTransformMatrixKHR, deepcopy_VkTransformMatrixNV);
+
+void deepcopy_VkAabbPositionsKHR(
+    BumpPool* pool,
+    const VkAabbPositionsKHR* from,
+    VkAabbPositionsKHR* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkAabbPositionsKHR, deepcopy_VkAabbPositionsNV);
+
+void deepcopy_VkAccelerationStructureInstanceKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureInstanceKHR* from,
+    VkAccelerationStructureInstanceKHR* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkAccelerationStructureInstanceKHR, deepcopy_VkAccelerationStructureInstanceNV);
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void deepcopy_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* from,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* to);
+
+void deepcopy_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* from,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* to);
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void deepcopy_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* from,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* to);
+
+void deepcopy_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    BumpPool* pool,
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* from,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* to);
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 void deepcopy_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     BumpPool* pool,
@@ -1977,6 +2811,20 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void deepcopy_VkPipelineCompilerControlCreateInfoAMD(
+    BumpPool* pool,
+    const VkPipelineCompilerControlCreateInfoAMD* from,
+    VkPipelineCompilerControlCreateInfoAMD* to);
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void deepcopy_VkCalibratedTimestampInfoEXT(
+    BumpPool* pool,
+    const VkCalibratedTimestampInfoEXT* from,
+    VkCalibratedTimestampInfoEXT* to);
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void deepcopy_VkPhysicalDeviceShaderCorePropertiesAMD(
     BumpPool* pool,
@@ -1984,6 +2832,13 @@
     VkPhysicalDeviceShaderCorePropertiesAMD* to);
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void deepcopy_VkDeviceMemoryOverallocationCreateInfoAMD(
+    BumpPool* pool,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* from,
+    VkDeviceMemoryOverallocationCreateInfoAMD* to);
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void deepcopy_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     BumpPool* pool,
@@ -2000,9 +2855,83 @@
     const VkPipelineVertexInputDivisorStateCreateInfoEXT* from,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* to);
 
+void deepcopy_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* from,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* to);
+
+#endif
+#ifdef VK_GGP_frame_token
+void deepcopy_VkPresentFrameTokenGGP(
+    BumpPool* pool,
+    const VkPresentFrameTokenGGP* from,
+    VkPresentFrameTokenGGP* to);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void deepcopy_VkPipelineCreationFeedbackEXT(
+    BumpPool* pool,
+    const VkPipelineCreationFeedbackEXT* from,
+    VkPipelineCreationFeedbackEXT* to);
+
+void deepcopy_VkPipelineCreationFeedbackCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineCreationFeedbackCreateInfoEXT* from,
+    VkPipelineCreationFeedbackCreateInfoEXT* to);
+
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void deepcopy_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* from,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* to);
+
+#endif
+#ifdef VK_NV_mesh_shader
+void deepcopy_VkPhysicalDeviceMeshShaderFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* from,
+    VkPhysicalDeviceMeshShaderFeaturesNV* to);
+
+void deepcopy_VkPhysicalDeviceMeshShaderPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* from,
+    VkPhysicalDeviceMeshShaderPropertiesNV* to);
+
+void deepcopy_VkDrawMeshTasksIndirectCommandNV(
+    BumpPool* pool,
+    const VkDrawMeshTasksIndirectCommandNV* from,
+    VkDrawMeshTasksIndirectCommandNV* to);
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void deepcopy_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* from,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* to);
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void deepcopy_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* from,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* to);
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void deepcopy_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* from,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* to);
+
+void deepcopy_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* from,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* to);
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void deepcopy_VkQueueFamilyCheckpointPropertiesNV(
     BumpPool* pool,
@@ -2015,7 +2944,89 @@
     VkCheckpointDataNV* to);
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void deepcopy_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* from,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* to);
+
+#endif
+#ifdef VK_INTEL_performance_query
+void deepcopy_VkPerformanceValueDataINTEL(
+    BumpPool* pool,
+    const VkPerformanceValueDataINTEL* from,
+    VkPerformanceValueDataINTEL* to);
+
+void deepcopy_VkPerformanceValueINTEL(
+    BumpPool* pool,
+    const VkPerformanceValueINTEL* from,
+    VkPerformanceValueINTEL* to);
+
+void deepcopy_VkInitializePerformanceApiInfoINTEL(
+    BumpPool* pool,
+    const VkInitializePerformanceApiInfoINTEL* from,
+    VkInitializePerformanceApiInfoINTEL* to);
+
+void deepcopy_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    BumpPool* pool,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* from,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkQueryPoolPerformanceQueryCreateInfoINTEL, deepcopy_VkQueryPoolCreateInfoINTEL);
+
+void deepcopy_VkPerformanceMarkerInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceMarkerInfoINTEL* from,
+    VkPerformanceMarkerInfoINTEL* to);
+
+void deepcopy_VkPerformanceStreamMarkerInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceStreamMarkerInfoINTEL* from,
+    VkPerformanceStreamMarkerInfoINTEL* to);
+
+void deepcopy_VkPerformanceOverrideInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceOverrideInfoINTEL* from,
+    VkPerformanceOverrideInfoINTEL* to);
+
+void deepcopy_VkPerformanceConfigurationAcquireInfoINTEL(
+    BumpPool* pool,
+    const VkPerformanceConfigurationAcquireInfoINTEL* from,
+    VkPerformanceConfigurationAcquireInfoINTEL* to);
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void deepcopy_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* from,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* to);
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void deepcopy_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    BumpPool* pool,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* from,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* to);
+
+void deepcopy_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    BumpPool* pool,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* from,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* to);
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void deepcopy_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    BumpPool* pool,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* from,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* to);
+
+#endif
+#ifdef VK_EXT_metal_surface
+void deepcopy_VkMetalSurfaceCreateInfoEXT(
+    BumpPool* pool,
+    const VkMetalSurfaceCreateInfoEXT* from,
+    VkMetalSurfaceCreateInfoEXT* to);
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void deepcopy_VkImportColorBufferGOOGLE(
@@ -2034,23 +3045,609 @@
     VkImportPhysicalAddressGOOGLE* to);
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceScalarBlockLayoutFeatures, deepcopy_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void deepcopy_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* from,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* from,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* to);
+
+void deepcopy_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* from,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* to);
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void deepcopy_VkPhysicalDeviceShaderCoreProperties2AMD(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* from,
+    VkPhysicalDeviceShaderCoreProperties2AMD* to);
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void deepcopy_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    BumpPool* pool,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* from,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* to);
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void deepcopy_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* from,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* to);
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void deepcopy_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* from,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* to);
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void deepcopy_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* from,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* to);
+
+void deepcopy_VkMemoryPriorityAllocateInfoEXT(
+    BumpPool* pool,
+    const VkMemoryPriorityAllocateInfoEXT* from,
+    VkMemoryPriorityAllocateInfoEXT* to);
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void deepcopy_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* from,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* to);
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void deepcopy_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* from,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* to);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, deepcopy_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(deepcopy_VkBufferDeviceAddressInfo, deepcopy_VkBufferDeviceAddressInfoEXT);
+
+void deepcopy_VkBufferDeviceAddressCreateInfoEXT(
+    BumpPool* pool,
+    const VkBufferDeviceAddressCreateInfoEXT* from,
+    VkBufferDeviceAddressCreateInfoEXT* to);
+
+#endif
+#ifdef VK_EXT_tooling_info
+void deepcopy_VkPhysicalDeviceToolPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceToolPropertiesEXT* from,
+    VkPhysicalDeviceToolPropertiesEXT* to);
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+DEFINE_ALIAS_FUNCTION(deepcopy_VkImageStencilUsageCreateInfo, deepcopy_VkImageStencilUsageCreateInfoEXT);
+
+#endif
+#ifdef VK_EXT_validation_features
+void deepcopy_VkValidationFeaturesEXT(
+    BumpPool* pool,
+    const VkValidationFeaturesEXT* from,
+    VkValidationFeaturesEXT* to);
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void deepcopy_VkCooperativeMatrixPropertiesNV(
+    BumpPool* pool,
+    const VkCooperativeMatrixPropertiesNV* from,
+    VkCooperativeMatrixPropertiesNV* to);
+
+void deepcopy_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* from,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* to);
+
+void deepcopy_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* from,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* to);
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void deepcopy_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* from,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* to);
+
+void deepcopy_VkPipelineCoverageReductionStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineCoverageReductionStateCreateInfoNV* from,
+    VkPipelineCoverageReductionStateCreateInfoNV* to);
+
+void deepcopy_VkFramebufferMixedSamplesCombinationNV(
+    BumpPool* pool,
+    const VkFramebufferMixedSamplesCombinationNV* from,
+    VkFramebufferMixedSamplesCombinationNV* to);
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void deepcopy_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* from,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void deepcopy_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* from,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void deepcopy_VkSurfaceFullScreenExclusiveInfoEXT(
+    BumpPool* pool,
+    const VkSurfaceFullScreenExclusiveInfoEXT* from,
+    VkSurfaceFullScreenExclusiveInfoEXT* to);
+
+void deepcopy_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    BumpPool* pool,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* from,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* to);
+
+void deepcopy_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    BumpPool* pool,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* from,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* to);
+
+#endif
+#ifdef VK_EXT_headless_surface
+void deepcopy_VkHeadlessSurfaceCreateInfoEXT(
+    BumpPool* pool,
+    const VkHeadlessSurfaceCreateInfoEXT* from,
+    VkHeadlessSurfaceCreateInfoEXT* to);
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void deepcopy_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* from,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* from,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* to);
+
+void deepcopy_VkPipelineRasterizationLineStateCreateInfoEXT(
+    BumpPool* pool,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* from,
+    VkPipelineRasterizationLineStateCreateInfoEXT* to);
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void deepcopy_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* from,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_host_query_reset
+DEFINE_ALIAS_FUNCTION(deepcopy_VkPhysicalDeviceHostQueryResetFeatures, deepcopy_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+#endif
+#ifdef VK_EXT_index_type_uint8
+void deepcopy_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* from,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void deepcopy_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* from,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void deepcopy_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* from,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* to);
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void deepcopy_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* from,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* to);
+
+void deepcopy_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* from,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* to);
+
+void deepcopy_VkGraphicsShaderGroupCreateInfoNV(
+    BumpPool* pool,
+    const VkGraphicsShaderGroupCreateInfoNV* from,
+    VkGraphicsShaderGroupCreateInfoNV* to);
+
+void deepcopy_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    BumpPool* pool,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* from,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* to);
+
+void deepcopy_VkBindShaderGroupIndirectCommandNV(
+    BumpPool* pool,
+    const VkBindShaderGroupIndirectCommandNV* from,
+    VkBindShaderGroupIndirectCommandNV* to);
+
+void deepcopy_VkBindIndexBufferIndirectCommandNV(
+    BumpPool* pool,
+    const VkBindIndexBufferIndirectCommandNV* from,
+    VkBindIndexBufferIndirectCommandNV* to);
+
+void deepcopy_VkBindVertexBufferIndirectCommandNV(
+    BumpPool* pool,
+    const VkBindVertexBufferIndirectCommandNV* from,
+    VkBindVertexBufferIndirectCommandNV* to);
+
+void deepcopy_VkSetStateFlagsIndirectCommandNV(
+    BumpPool* pool,
+    const VkSetStateFlagsIndirectCommandNV* from,
+    VkSetStateFlagsIndirectCommandNV* to);
+
+void deepcopy_VkIndirectCommandsStreamNV(
+    BumpPool* pool,
+    const VkIndirectCommandsStreamNV* from,
+    VkIndirectCommandsStreamNV* to);
+
+void deepcopy_VkIndirectCommandsLayoutTokenNV(
+    BumpPool* pool,
+    const VkIndirectCommandsLayoutTokenNV* from,
+    VkIndirectCommandsLayoutTokenNV* to);
+
+void deepcopy_VkIndirectCommandsLayoutCreateInfoNV(
+    BumpPool* pool,
+    const VkIndirectCommandsLayoutCreateInfoNV* from,
+    VkIndirectCommandsLayoutCreateInfoNV* to);
+
+void deepcopy_VkGeneratedCommandsInfoNV(
+    BumpPool* pool,
+    const VkGeneratedCommandsInfoNV* from,
+    VkGeneratedCommandsInfoNV* to);
+
+void deepcopy_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    BumpPool* pool,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* from,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* to);
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void deepcopy_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* from,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* from,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* to);
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void deepcopy_VkRenderPassTransformBeginInfoQCOM(
+    BumpPool* pool,
+    const VkRenderPassTransformBeginInfoQCOM* from,
+    VkRenderPassTransformBeginInfoQCOM* to);
+
+void deepcopy_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    BumpPool* pool,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* from,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* to);
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void deepcopy_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* from,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* to);
+
+void deepcopy_VkDeviceMemoryReportCallbackDataEXT(
+    BumpPool* pool,
+    const VkDeviceMemoryReportCallbackDataEXT* from,
+    VkDeviceMemoryReportCallbackDataEXT* to);
+
+void deepcopy_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    BumpPool* pool,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* from,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* to);
+
+#endif
+#ifdef VK_EXT_robustness2
+void deepcopy_VkPhysicalDeviceRobustness2FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* from,
+    VkPhysicalDeviceRobustness2FeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceRobustness2PropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* from,
+    VkPhysicalDeviceRobustness2PropertiesEXT* to);
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void deepcopy_VkSamplerCustomBorderColorCreateInfoEXT(
+    BumpPool* pool,
+    const VkSamplerCustomBorderColorCreateInfoEXT* from,
+    VkSamplerCustomBorderColorCreateInfoEXT* to);
+
+void deepcopy_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* from,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* to);
+
+void deepcopy_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* from,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* to);
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void deepcopy_VkPhysicalDevicePrivateDataFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* from,
+    VkPhysicalDevicePrivateDataFeaturesEXT* to);
+
+void deepcopy_VkDevicePrivateDataCreateInfoEXT(
+    BumpPool* pool,
+    const VkDevicePrivateDataCreateInfoEXT* from,
+    VkDevicePrivateDataCreateInfoEXT* to);
+
+void deepcopy_VkPrivateDataSlotCreateInfoEXT(
+    BumpPool* pool,
+    const VkPrivateDataSlotCreateInfoEXT* from,
+    VkPrivateDataSlotCreateInfoEXT* to);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void deepcopy_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* from,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* to);
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void deepcopy_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* from,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* to);
+
+void deepcopy_VkDeviceDiagnosticsConfigCreateInfoNV(
+    BumpPool* pool,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* from,
+    VkDeviceDiagnosticsConfigCreateInfoNV* to);
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void deepcopy_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* from,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* to);
+
+void deepcopy_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* from,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* to);
+
+void deepcopy_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    BumpPool* pool,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* from,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* to);
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void deepcopy_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* from,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* to);
+
+void deepcopy_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* from,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* to);
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void deepcopy_VkCopyCommandTransformInfoQCOM(
+    BumpPool* pool,
+    const VkCopyCommandTransformInfoQCOM* from,
+    VkCopyCommandTransformInfoQCOM* to);
+
+#endif
+#ifdef VK_EXT_image_robustness
+void deepcopy_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* from,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_4444_formats
+void deepcopy_VkPhysicalDevice4444FormatsFeaturesEXT(
+    BumpPool* pool,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* from,
+    VkPhysicalDevice4444FormatsFeaturesEXT* to);
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void deepcopy_VkDirectFBSurfaceCreateInfoEXT(
+    BumpPool* pool,
+    const VkDirectFBSurfaceCreateInfoEXT* from,
+    VkDirectFBSurfaceCreateInfoEXT* to);
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void deepcopy_VkDeviceOrHostAddressKHR(
+    BumpPool* pool,
+    const VkDeviceOrHostAddressKHR* from,
+    VkDeviceOrHostAddressKHR* to);
+
+void deepcopy_VkDeviceOrHostAddressConstKHR(
+    BumpPool* pool,
+    const VkDeviceOrHostAddressConstKHR* from,
+    VkDeviceOrHostAddressConstKHR* to);
+
+void deepcopy_VkAccelerationStructureBuildRangeInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureBuildRangeInfoKHR* from,
+    VkAccelerationStructureBuildRangeInfoKHR* to);
+
+void deepcopy_VkAccelerationStructureGeometryTrianglesDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* from,
+    VkAccelerationStructureGeometryTrianglesDataKHR* to);
+
+void deepcopy_VkAccelerationStructureGeometryAabbsDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryAabbsDataKHR* from,
+    VkAccelerationStructureGeometryAabbsDataKHR* to);
+
+void deepcopy_VkAccelerationStructureGeometryInstancesDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryInstancesDataKHR* from,
+    VkAccelerationStructureGeometryInstancesDataKHR* to);
+
+void deepcopy_VkAccelerationStructureGeometryDataKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryDataKHR* from,
+    VkAccelerationStructureGeometryDataKHR* to);
+
+void deepcopy_VkAccelerationStructureGeometryKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureGeometryKHR* from,
+    VkAccelerationStructureGeometryKHR* to);
+
+void deepcopy_VkAccelerationStructureBuildGeometryInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureBuildGeometryInfoKHR* from,
+    VkAccelerationStructureBuildGeometryInfoKHR* to);
+
+void deepcopy_VkAccelerationStructureCreateInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureCreateInfoKHR* from,
+    VkAccelerationStructureCreateInfoKHR* to);
+
+void deepcopy_VkWriteDescriptorSetAccelerationStructureKHR(
+    BumpPool* pool,
+    const VkWriteDescriptorSetAccelerationStructureKHR* from,
+    VkWriteDescriptorSetAccelerationStructureKHR* to);
+
+void deepcopy_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* from,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* to);
+
+void deepcopy_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* from,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* to);
+
+void deepcopy_VkAccelerationStructureDeviceAddressInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureDeviceAddressInfoKHR* from,
+    VkAccelerationStructureDeviceAddressInfoKHR* to);
+
+void deepcopy_VkAccelerationStructureVersionInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureVersionInfoKHR* from,
+    VkAccelerationStructureVersionInfoKHR* to);
+
+void deepcopy_VkCopyAccelerationStructureToMemoryInfoKHR(
+    BumpPool* pool,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* from,
+    VkCopyAccelerationStructureToMemoryInfoKHR* to);
+
+void deepcopy_VkCopyMemoryToAccelerationStructureInfoKHR(
+    BumpPool* pool,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* from,
+    VkCopyMemoryToAccelerationStructureInfoKHR* to);
+
+void deepcopy_VkCopyAccelerationStructureInfoKHR(
+    BumpPool* pool,
+    const VkCopyAccelerationStructureInfoKHR* from,
+    VkCopyAccelerationStructureInfoKHR* to);
+
+void deepcopy_VkAccelerationStructureBuildSizesInfoKHR(
+    BumpPool* pool,
+    const VkAccelerationStructureBuildSizesInfoKHR* from,
+    VkAccelerationStructureBuildSizesInfoKHR* to);
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void deepcopy_VkRayTracingShaderGroupCreateInfoKHR(
+    BumpPool* pool,
+    const VkRayTracingShaderGroupCreateInfoKHR* from,
+    VkRayTracingShaderGroupCreateInfoKHR* to);
+
+void deepcopy_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    BumpPool* pool,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* from,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* to);
+
+void deepcopy_VkRayTracingPipelineCreateInfoKHR(
+    BumpPool* pool,
+    const VkRayTracingPipelineCreateInfoKHR* from,
+    VkRayTracingPipelineCreateInfoKHR* to);
+
+void deepcopy_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* from,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* to);
+
+void deepcopy_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* from,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* to);
+
+void deepcopy_VkStridedDeviceAddressRegionKHR(
+    BumpPool* pool,
+    const VkStridedDeviceAddressRegionKHR* from,
+    VkStridedDeviceAddressRegionKHR* to);
+
+void deepcopy_VkTraceRaysIndirectCommandKHR(
+    BumpPool* pool,
+    const VkTraceRaysIndirectCommandKHR* from,
+    VkTraceRaysIndirectCommandKHR* to);
+
+#endif
+#ifdef VK_KHR_ray_query
+void deepcopy_VkPhysicalDeviceRayQueryFeaturesKHR(
+    BumpPool* pool,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* from,
+    VkPhysicalDeviceRayQueryFeaturesKHR* to);
+
 #endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
index 85d0a34..9169a98 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.cpp
@@ -32,6 +32,8 @@
 #endif
 #ifdef VK_VERSION_1_1
 #endif
+#ifdef VK_VERSION_1_2
+#endif
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
@@ -46,8 +48,6 @@
 #endif
 #ifdef VK_KHR_wayland_surface
 #endif
-#ifdef VK_KHR_mir_surface
-#endif
 #ifdef VK_KHR_android_surface
 #endif
 #ifdef VK_KHR_win32_surface
@@ -86,12 +86,16 @@
 #endif
 #ifdef VK_KHR_push_descriptor
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -104,6 +108,8 @@
 #endif
 #ifdef VK_KHR_external_fence_fd
 #endif
+#ifdef VK_KHR_performance_query
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -126,13 +132,55 @@
 #endif
 #ifdef VK_KHR_bind_memory2
 #endif
+#ifdef VK_KHR_portability_subset
+#endif
 #ifdef VK_KHR_maintenance3
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
 #endif
-#ifdef VK_KHR_shader_float16_int8
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+#endif
+#ifdef VK_KHR_pipeline_library
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
 #endif
 #ifdef VK_ANDROID_native_buffer
 #endif
@@ -156,6 +204,10 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 #endif
+#ifdef VK_EXT_transform_feedback
+#endif
+#ifdef VK_NVX_image_view_handle
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -170,6 +222,10 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+#endif
+#ifdef VK_NV_corner_sampled_image
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -188,9 +244,11 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
-#ifdef VK_EXT_conditional_rendering
+#ifdef VK_EXT_texture_compression_astc_hdr
 #endif
-#ifdef VK_NVX_device_generated_commands
+#ifdef VK_EXT_astc_decode_mode
+#endif
+#ifdef VK_EXT_conditional_rendering
 #endif
 #ifdef VK_NV_clip_space_w_scaling
 #endif
@@ -218,6 +276,8 @@
 #endif
 #ifdef VK_EXT_conservative_rasterization
 #endif
+#ifdef VK_EXT_depth_clip_enable
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -226,6 +286,8 @@
 #endif
 #ifdef VK_MVK_macos_surface
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
@@ -242,6 +304,8 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -254,49 +318,169 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+#endif
 #ifdef VK_EXT_validation_cache
 #endif
 #ifdef VK_EXT_descriptor_indexing
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+#endif
+#ifdef VK_NV_ray_tracing
+#endif
+#ifdef VK_NV_representative_fragment_test
+#endif
+#ifdef VK_EXT_filter_cubic
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 #endif
 #ifdef VK_EXT_external_memory_host
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+#endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 #endif
+#ifdef VK_GGP_frame_token
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+#endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+#endif
+#ifdef VK_NV_mesh_shader
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+#endif
+#ifdef VK_NV_shader_image_footprint
+#endif
+#ifdef VK_NV_scissor_exclusive
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+#endif
+#ifdef VK_INTEL_performance_query
+#endif
+#ifdef VK_EXT_pci_bus_info
+#endif
+#ifdef VK_AMD_display_native_hdr
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+#endif
+#ifdef VK_EXT_metal_surface
 #endif
 #ifdef VK_GOOGLE_color_buffer
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+#endif
+#ifdef VK_EXT_buffer_device_address
+#endif
+#ifdef VK_EXT_tooling_info
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+#endif
+#ifdef VK_NV_cooperative_matrix
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+#endif
+#ifdef VK_EXT_headless_surface
+#endif
+#ifdef VK_EXT_line_rasterization
+#endif
+#ifdef VK_EXT_shader_atomic_float
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+#endif
+#ifdef VK_NV_device_generated_commands
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+#endif
+#ifdef VK_QCOM_render_pass_transform
+#endif
+#ifdef VK_EXT_device_memory_report
+#endif
+#ifdef VK_EXT_robustness2
+#endif
+#ifdef VK_EXT_custom_border_color
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+#endif
+#ifdef VK_NV_device_diagnostics_config
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+#endif
+#ifdef VK_EXT_fragment_density_map2
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+#endif
+#ifdef VK_EXT_image_robustness
+#endif
+#ifdef VK_EXT_4444_formats
+#endif
+#ifdef VK_EXT_directfb_surface
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+#endif
+#ifdef VK_KHR_ray_query
 #endif
 uint32_t goldfish_vk_struct_type(
     const void* structExtension)
@@ -396,9 +580,9 @@
         {
             return sizeof(VkPhysicalDeviceMultiviewProperties);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            return sizeof(VkPhysicalDeviceVariablePointerFeatures);
+            return sizeof(VkPhysicalDeviceVariablePointersFeatures);
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
         {
@@ -468,9 +652,163 @@
         {
             return sizeof(VkPhysicalDeviceMaintenance3Properties);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            return sizeof(VkPhysicalDeviceShaderDrawParameterFeatures);
+            return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan11Features);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan11Properties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan12Features);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan12Properties);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            return sizeof(VkImageFormatListCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            return sizeof(VkPhysicalDevice8BitStorageFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceDriverProperties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceFloatControlsProperties);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            return sizeof(VkSubpassDescriptionDepthStencilResolve);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            return sizeof(VkImageStencilUsageCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            return sizeof(VkSamplerReductionModeCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            return sizeof(VkFramebufferAttachmentsCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            return sizeof(VkRenderPassAttachmentBeginInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            return sizeof(VkAttachmentReferenceStencilLayout);
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            return sizeof(VkAttachmentDescriptionStencilLayout);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            return sizeof(VkSemaphoreTypeCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            return sizeof(VkTimelineSemaphoreSubmitInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
         }
 #endif
 #ifdef VK_KHR_swapchain
@@ -553,22 +891,74 @@
             return sizeof(VkExportFenceWin32HandleInfoKHR);
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            return sizeof(VkImageFormatListCreateInfoKHR);
+            return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            return sizeof(VkPerformanceQuerySubmitInfoKHR);
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            return sizeof(VkPhysicalDevice8BitStorageFeaturesKHR);
+            return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
+            return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            return sizeof(VkSurfaceProtectedCapabilitiesKHR);
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
         }
 #endif
 #ifdef VK_ANDROID_native_buffer
@@ -603,12 +993,32 @@
             return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
             return sizeof(VkTextureLODGatherFormatPropertiesAMD);
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -641,6 +1051,22 @@
             return sizeof(VkValidationFlagsEXT);
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            return sizeof(VkImageViewASTCDecodeModeEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -701,6 +1127,16 @@
             return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -725,14 +1161,22 @@
             return sizeof(VkExternalFormatANDROID);
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            return sizeof(VkSamplerReductionModeCreateInfoEXT);
+            return sizeof(VkPhysicalDeviceInlineUniformBlockFeaturesEXT);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            return sizeof(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
+            return sizeof(VkPhysicalDeviceInlineUniformBlockPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            return sizeof(VkWriteDescriptorSetInlineUniformBlockEXT);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfoEXT);
         }
 #endif
 #ifdef VK_EXT_sample_locations
@@ -779,32 +1223,86 @@
             return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            return sizeof(VkDrmFormatModifierPropertiesListEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
             return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
+            return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            return sizeof(VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
+            return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            return sizeof(VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
+            return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
+            return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
+            return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
         }
 #endif
 #ifdef VK_EXT_global_priority
@@ -823,12 +1321,24 @@
             return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            return sizeof(VkPipelineCompilerControlCreateInfoAMD);
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -838,6 +1348,60 @@
         {
             return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            return sizeof(VkPresentFrameTokenGGP);
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineCreationFeedbackCreateInfoEXT);
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV);
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -845,6 +1409,34 @@
             return sizeof(VkQueueFamilyCheckpointPropertiesNV);
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -859,6 +1451,326 @@
             return sizeof(VkImportPhysicalAddressGOOGLE);
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceSubgroupSizeControlFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceSubgroupSizeControlPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT);
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            return sizeof(VkMemoryPriorityAllocateInfoEXT);
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkBufferDeviceAddressCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            return sizeof(VkValidationFeaturesEXT);
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationLineStateCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT);
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT);
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            return sizeof(VkRenderPassTransformBeginInfoQCOM);
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePrivateDataFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            return sizeof(VkDevicePrivateDataCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT);
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            return sizeof(VkCopyCommandTransformInfoQCOM);
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceImageRobustnessFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
+        }
+#endif
         default:
         {
             return (size_t)0;
@@ -958,9 +1870,9 @@
         {
             return sizeof(VkPhysicalDeviceMultiviewProperties);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            return sizeof(VkPhysicalDeviceVariablePointerFeatures);
+            return sizeof(VkPhysicalDeviceVariablePointersFeatures);
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
         {
@@ -1030,9 +1942,170 @@
         {
             return sizeof(VkPhysicalDeviceMaintenance3Properties);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            return sizeof(VkPhysicalDeviceShaderDrawParameterFeatures);
+            return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan11Features);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan11Properties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan12Features);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceVulkan12Properties);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            return sizeof(VkImageFormatListCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            return sizeof(VkPhysicalDevice8BitStorageFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceDriverProperties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            if (streamFeatures & VULKAN_STREAM_FEATURE_SHADER_FLOAT16_INT8_BIT)
+            {
+                return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
+            }
+            else
+            {
+                return 0;
+            }
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceFloatControlsProperties);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            return sizeof(VkSubpassDescriptionDepthStencilResolve);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            return sizeof(VkImageStencilUsageCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            return sizeof(VkSamplerReductionModeCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            return sizeof(VkFramebufferAttachmentsCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            return sizeof(VkRenderPassAttachmentBeginInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            return sizeof(VkAttachmentReferenceStencilLayout);
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            return sizeof(VkAttachmentDescriptionStencilLayout);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            return sizeof(VkSemaphoreTypeCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            return sizeof(VkTimelineSemaphoreSubmitInfo);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
         }
 #endif
 #ifdef VK_KHR_swapchain
@@ -1115,29 +2188,74 @@
             return sizeof(VkExportFenceWin32HandleInfoKHR);
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            return sizeof(VkImageFormatListCreateInfoKHR);
+            return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            return sizeof(VkPerformanceQuerySubmitInfoKHR);
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            return sizeof(VkPhysicalDevice8BitStorageFeaturesKHR);
+            return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            if (streamFeatures & VULKAN_STREAM_FEATURE_SHADER_FLOAT16_INT8_BIT)
-            {
-                return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
-            }
-            else
-            {
-                return 0;
-            }
+            return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR);
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            return sizeof(VkSurfaceProtectedCapabilitiesKHR);
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
         }
 #endif
 #ifdef VK_ANDROID_native_buffer
@@ -1172,12 +2290,32 @@
             return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
             return sizeof(VkTextureLODGatherFormatPropertiesAMD);
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -1210,6 +2348,22 @@
             return sizeof(VkValidationFlagsEXT);
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            return sizeof(VkImageViewASTCDecodeModeEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -1270,6 +2424,16 @@
             return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -1294,14 +2458,22 @@
             return sizeof(VkExternalFormatANDROID);
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            return sizeof(VkSamplerReductionModeCreateInfoEXT);
+            return sizeof(VkPhysicalDeviceInlineUniformBlockFeaturesEXT);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            return sizeof(VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
+            return sizeof(VkPhysicalDeviceInlineUniformBlockPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            return sizeof(VkWriteDescriptorSetInlineUniformBlockEXT);
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfoEXT);
         }
 #endif
 #ifdef VK_EXT_sample_locations
@@ -1348,32 +2520,86 @@
             return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            return sizeof(VkDrmFormatModifierPropertiesListEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
             return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
+            return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            return sizeof(VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
+            return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            return sizeof(VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
+            return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
+            return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
+            return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
         }
 #endif
 #ifdef VK_EXT_global_priority
@@ -1392,12 +2618,24 @@
             return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            return sizeof(VkPipelineCompilerControlCreateInfoAMD);
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -1407,6 +2645,60 @@
         {
             return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            return sizeof(VkPresentFrameTokenGGP);
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineCreationFeedbackCreateInfoEXT);
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV);
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -1414,6 +2706,34 @@
             return sizeof(VkQueueFamilyCheckpointPropertiesNV);
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -1428,6 +2748,326 @@
             return sizeof(VkImportPhysicalAddressGOOGLE);
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceSubgroupSizeControlFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceSubgroupSizeControlPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT);
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            return sizeof(VkMemoryPriorityAllocateInfoEXT);
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            return sizeof(VkBufferDeviceAddressCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            return sizeof(VkValidationFeaturesEXT);
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceLineRasterizationFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceLineRasterizationPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            return sizeof(VkPipelineRasterizationLineStateCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT);
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT);
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            return sizeof(VkRenderPassTransformBeginInfoQCOM);
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePrivateDataFeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            return sizeof(VkDevicePrivateDataCreateInfoEXT);
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT);
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            return sizeof(VkCopyCommandTransformInfoQCOM);
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDeviceImageRobustnessFeaturesEXT);
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
+        }
+#endif
         default:
         {
             return (size_t)0;
diff --git a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
index be41e8a..1fddc3b 100644
--- a/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
+++ b/system/vulkan_enc/goldfish_vk_extension_structs_guest.h
@@ -53,6 +53,8 @@
 #endif
 #ifdef VK_VERSION_1_1
 #endif
+#ifdef VK_VERSION_1_2
+#endif
 #ifdef VK_KHR_surface
 #endif
 #ifdef VK_KHR_swapchain
@@ -67,8 +69,6 @@
 #endif
 #ifdef VK_KHR_wayland_surface
 #endif
-#ifdef VK_KHR_mir_surface
-#endif
 #ifdef VK_KHR_android_surface
 #endif
 #ifdef VK_KHR_win32_surface
@@ -107,12 +107,16 @@
 #endif
 #ifdef VK_KHR_push_descriptor
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -125,6 +129,8 @@
 #endif
 #ifdef VK_KHR_external_fence_fd
 #endif
+#ifdef VK_KHR_performance_query
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -147,13 +153,55 @@
 #endif
 #ifdef VK_KHR_bind_memory2
 #endif
+#ifdef VK_KHR_portability_subset
+#endif
 #ifdef VK_KHR_maintenance3
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
 #endif
-#ifdef VK_KHR_shader_float16_int8
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+#endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+#endif
+#ifdef VK_KHR_pipeline_library
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
 #endif
 #ifdef VK_ANDROID_native_buffer
 #endif
@@ -177,6 +225,10 @@
 #endif
 #ifdef VK_NV_dedicated_allocation
 #endif
+#ifdef VK_EXT_transform_feedback
+#endif
+#ifdef VK_NVX_image_view_handle
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -191,6 +243,10 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+#endif
+#ifdef VK_NV_corner_sampled_image
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -209,9 +265,11 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
-#ifdef VK_EXT_conditional_rendering
+#ifdef VK_EXT_texture_compression_astc_hdr
 #endif
-#ifdef VK_NVX_device_generated_commands
+#ifdef VK_EXT_astc_decode_mode
+#endif
+#ifdef VK_EXT_conditional_rendering
 #endif
 #ifdef VK_NV_clip_space_w_scaling
 #endif
@@ -239,6 +297,8 @@
 #endif
 #ifdef VK_EXT_conservative_rasterization
 #endif
+#ifdef VK_EXT_depth_clip_enable
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -247,6 +307,8 @@
 #endif
 #ifdef VK_MVK_macos_surface
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
@@ -263,6 +325,8 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -275,49 +339,169 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+#endif
 #ifdef VK_EXT_validation_cache
 #endif
 #ifdef VK_EXT_descriptor_indexing
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+#endif
+#ifdef VK_NV_ray_tracing
+#endif
+#ifdef VK_NV_representative_fragment_test
+#endif
+#ifdef VK_EXT_filter_cubic
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 #endif
 #ifdef VK_EXT_external_memory_host
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+#endif
 #ifdef VK_AMD_shader_core_properties
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 #endif
+#ifdef VK_GGP_frame_token
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+#endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+#endif
+#ifdef VK_NV_mesh_shader
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+#endif
+#ifdef VK_NV_shader_image_footprint
+#endif
+#ifdef VK_NV_scissor_exclusive
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+#endif
+#ifdef VK_INTEL_performance_query
+#endif
+#ifdef VK_EXT_pci_bus_info
+#endif
+#ifdef VK_AMD_display_native_hdr
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+#endif
+#ifdef VK_EXT_metal_surface
 #endif
 #ifdef VK_GOOGLE_color_buffer
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+#endif
+#ifdef VK_EXT_buffer_device_address
+#endif
+#ifdef VK_EXT_tooling_info
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+#endif
+#ifdef VK_NV_cooperative_matrix
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+#endif
+#ifdef VK_EXT_headless_surface
+#endif
+#ifdef VK_EXT_line_rasterization
+#endif
+#ifdef VK_EXT_shader_atomic_float
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+#endif
+#ifdef VK_NV_device_generated_commands
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+#endif
+#ifdef VK_QCOM_render_pass_transform
+#endif
+#ifdef VK_EXT_device_memory_report
+#endif
+#ifdef VK_EXT_robustness2
+#endif
+#ifdef VK_EXT_custom_border_color
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+#endif
+#ifdef VK_NV_device_diagnostics_config
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+#endif
+#ifdef VK_EXT_fragment_density_map2
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+#endif
+#ifdef VK_EXT_image_robustness
+#endif
+#ifdef VK_EXT_4444_formats
+#endif
+#ifdef VK_EXT_directfb_surface
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+#endif
+#ifdef VK_KHR_ray_query
 #endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
index 7e18ea8..a35758e 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.cpp
@@ -36,6 +36,151 @@
     void* structExtension_out);
 
 #ifdef VK_VERSION_1_0
+void handlemap_VkExtent2D(
+    VulkanHandleMapping* handlemap,
+    VkExtent2D* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkExtent3D(
+    VulkanHandleMapping* handlemap,
+    VkExtent3D* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkOffset2D(
+    VulkanHandleMapping* handlemap,
+    VkOffset2D* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkOffset3D(
+    VulkanHandleMapping* handlemap,
+    VkOffset3D* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkRect2D(
+    VulkanHandleMapping* handlemap,
+    VkRect2D* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkOffset2D(handlemap, (VkOffset2D*)(&toMap->offset));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->extent));
+}
+
+void handlemap_VkBaseInStructure(
+    VulkanHandleMapping* handlemap,
+    VkBaseInStructure* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkBaseOutStructure(
+    VulkanHandleMapping* handlemap,
+    VkBaseOutStructure* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkBufferMemoryBarrier(
+    VulkanHandleMapping* handlemap,
+    VkBufferMemoryBarrier* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
+}
+
+void handlemap_VkDispatchIndirectCommand(
+    VulkanHandleMapping* handlemap,
+    VkDispatchIndirectCommand* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkDrawIndexedIndirectCommand(
+    VulkanHandleMapping* handlemap,
+    VkDrawIndexedIndirectCommand* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkDrawIndirectCommand(
+    VulkanHandleMapping* handlemap,
+    VkDrawIndirectCommand* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkImageSubresourceRange(
+    VulkanHandleMapping* handlemap,
+    VkImageSubresourceRange* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkImageMemoryBarrier(
+    VulkanHandleMapping* handlemap,
+    VkImageMemoryBarrier* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->image);
+    handlemap_VkImageSubresourceRange(handlemap, (VkImageSubresourceRange*)(&toMap->subresourceRange));
+}
+
+void handlemap_VkMemoryBarrier(
+    VulkanHandleMapping* handlemap,
+    VkMemoryBarrier* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkAllocationCallbacks(
+    VulkanHandleMapping* handlemap,
+    VkAllocationCallbacks* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
 void handlemap_VkApplicationInfo(
     VulkanHandleMapping* handlemap,
     VkApplicationInfo* toMap)
@@ -48,6 +193,23 @@
     }
 }
 
+void handlemap_VkFormatProperties(
+    VulkanHandleMapping* handlemap,
+    VkFormatProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkImageFormatProperties(
+    VulkanHandleMapping* handlemap,
+    VkImageFormatProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->maxExtent));
+}
+
 void handlemap_VkInstanceCreateInfo(
     VulkanHandleMapping* handlemap,
     VkInstanceCreateInfo* toMap)
@@ -64,9 +226,17 @@
     }
 }
 
-void handlemap_VkAllocationCallbacks(
+void handlemap_VkMemoryHeap(
     VulkanHandleMapping* handlemap,
-    VkAllocationCallbacks* toMap)
+    VkMemoryHeap* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkMemoryType(
+    VulkanHandleMapping* handlemap,
+    VkMemoryType* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -80,31 +250,6 @@
     (void)toMap;
 }
 
-void handlemap_VkFormatProperties(
-    VulkanHandleMapping* handlemap,
-    VkFormatProperties* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkExtent3D(
-    VulkanHandleMapping* handlemap,
-    VkExtent3D* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkImageFormatProperties(
-    VulkanHandleMapping* handlemap,
-    VkImageFormatProperties* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->maxExtent));
-}
-
 void handlemap_VkPhysicalDeviceLimits(
     VulkanHandleMapping* handlemap,
     VkPhysicalDeviceLimits* toMap)
@@ -113,6 +258,22 @@
     (void)toMap;
 }
 
+void handlemap_VkPhysicalDeviceMemoryProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMemoryProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        handlemap_VkMemoryType(handlemap, (VkMemoryType*)(toMap->memoryTypes + i));
+    }
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        handlemap_VkMemoryHeap(handlemap, (VkMemoryHeap*)(toMap->memoryHeaps + i));
+    }
+}
+
 void handlemap_VkPhysicalDeviceSparseProperties(
     VulkanHandleMapping* handlemap,
     VkPhysicalDeviceSparseProperties* toMap)
@@ -140,38 +301,6 @@
     handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->minImageTransferGranularity));
 }
 
-void handlemap_VkMemoryType(
-    VulkanHandleMapping* handlemap,
-    VkMemoryType* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkMemoryHeap(
-    VulkanHandleMapping* handlemap,
-    VkMemoryHeap* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkPhysicalDeviceMemoryProperties(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceMemoryProperties* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        handlemap_VkMemoryType(handlemap, (VkMemoryType*)(toMap->memoryTypes + i));
-    }
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        handlemap_VkMemoryHeap(handlemap, (VkMemoryHeap*)(toMap->memoryHeaps + i));
-    }
-}
-
 void handlemap_VkDeviceQueueCreateInfo(
     VulkanHandleMapping* handlemap,
     VkDeviceQueueCreateInfo* toMap)
@@ -194,11 +323,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pQueueCreateInfos)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->queueCreateInfoCount; ++i)
+        if (toMap->pQueueCreateInfos)
         {
-            handlemap_VkDeviceQueueCreateInfo(handlemap, (VkDeviceQueueCreateInfo*)(toMap->pQueueCreateInfos + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->queueCreateInfoCount; ++i)
+            {
+                handlemap_VkDeviceQueueCreateInfo(handlemap, (VkDeviceQueueCreateInfo*)(toMap->pQueueCreateInfos + i));
+            }
         }
     }
     if (toMap->pEnabledFeatures)
@@ -247,18 +379,6 @@
     }
 }
 
-void handlemap_VkMemoryAllocateInfo(
-    VulkanHandleMapping* handlemap,
-    VkMemoryAllocateInfo* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
 void handlemap_VkMappedMemoryRange(
     VulkanHandleMapping* handlemap,
     VkMappedMemoryRange* toMap)
@@ -272,6 +392,18 @@
     handlemap->mapHandles_VkDeviceMemory((VkDeviceMemory*)&toMap->memory);
 }
 
+void handlemap_VkMemoryAllocateInfo(
+    VulkanHandleMapping* handlemap,
+    VkMemoryAllocateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 void handlemap_VkMemoryRequirements(
     VulkanHandleMapping* handlemap,
     VkMemoryRequirements* toMap)
@@ -280,24 +412,6 @@
     (void)toMap;
 }
 
-void handlemap_VkSparseImageFormatProperties(
-    VulkanHandleMapping* handlemap,
-    VkSparseImageFormatProperties* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->imageGranularity));
-}
-
-void handlemap_VkSparseImageMemoryRequirements(
-    VulkanHandleMapping* handlemap,
-    VkSparseImageMemoryRequirements* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap_VkSparseImageFormatProperties(handlemap, (VkSparseImageFormatProperties*)(&toMap->formatProperties));
-}
-
 void handlemap_VkSparseMemoryBind(
     VulkanHandleMapping* handlemap,
     VkSparseMemoryBind* toMap)
@@ -314,11 +428,14 @@
     (void)handlemap;
     (void)toMap;
     handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
-    if (toMap->pBinds)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->bindCount; ++i)
+        if (toMap->pBinds)
         {
-            handlemap_VkSparseMemoryBind(handlemap, (VkSparseMemoryBind*)(toMap->pBinds + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->bindCount; ++i)
+            {
+                handlemap_VkSparseMemoryBind(handlemap, (VkSparseMemoryBind*)(toMap->pBinds + i));
+            }
         }
     }
 }
@@ -330,11 +447,14 @@
     (void)handlemap;
     (void)toMap;
     handlemap->mapHandles_VkImage((VkImage*)&toMap->image);
-    if (toMap->pBinds)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->bindCount; ++i)
+        if (toMap->pBinds)
         {
-            handlemap_VkSparseMemoryBind(handlemap, (VkSparseMemoryBind*)(toMap->pBinds + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->bindCount; ++i)
+            {
+                handlemap_VkSparseMemoryBind(handlemap, (VkSparseMemoryBind*)(toMap->pBinds + i));
+            }
         }
     }
 }
@@ -347,14 +467,6 @@
     (void)toMap;
 }
 
-void handlemap_VkOffset3D(
-    VulkanHandleMapping* handlemap,
-    VkOffset3D* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
 void handlemap_VkSparseImageMemoryBind(
     VulkanHandleMapping* handlemap,
     VkSparseImageMemoryBind* toMap)
@@ -374,11 +486,14 @@
     (void)handlemap;
     (void)toMap;
     handlemap->mapHandles_VkImage((VkImage*)&toMap->image);
-    if (toMap->pBinds)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->bindCount; ++i)
+        if (toMap->pBinds)
         {
-            handlemap_VkSparseImageMemoryBind(handlemap, (VkSparseImageMemoryBind*)(toMap->pBinds + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->bindCount; ++i)
+            {
+                handlemap_VkSparseImageMemoryBind(handlemap, (VkSparseImageMemoryBind*)(toMap->pBinds + i));
+            }
         }
     }
 }
@@ -397,25 +512,34 @@
     {
         handlemap->mapHandles_VkSemaphore((VkSemaphore*)toMap->pWaitSemaphores, toMap->waitSemaphoreCount);
     }
-    if (toMap->pBufferBinds)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->bufferBindCount; ++i)
+        if (toMap->pBufferBinds)
         {
-            handlemap_VkSparseBufferMemoryBindInfo(handlemap, (VkSparseBufferMemoryBindInfo*)(toMap->pBufferBinds + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->bufferBindCount; ++i)
+            {
+                handlemap_VkSparseBufferMemoryBindInfo(handlemap, (VkSparseBufferMemoryBindInfo*)(toMap->pBufferBinds + i));
+            }
         }
     }
-    if (toMap->pImageOpaqueBinds)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->imageOpaqueBindCount; ++i)
+        if (toMap->pImageOpaqueBinds)
         {
-            handlemap_VkSparseImageOpaqueMemoryBindInfo(handlemap, (VkSparseImageOpaqueMemoryBindInfo*)(toMap->pImageOpaqueBinds + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->imageOpaqueBindCount; ++i)
+            {
+                handlemap_VkSparseImageOpaqueMemoryBindInfo(handlemap, (VkSparseImageOpaqueMemoryBindInfo*)(toMap->pImageOpaqueBinds + i));
+            }
         }
     }
-    if (toMap->pImageBinds)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->imageBindCount; ++i)
+        if (toMap->pImageBinds)
         {
-            handlemap_VkSparseImageMemoryBindInfo(handlemap, (VkSparseImageMemoryBindInfo*)(toMap->pImageBinds + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->imageBindCount; ++i)
+            {
+                handlemap_VkSparseImageMemoryBindInfo(handlemap, (VkSparseImageMemoryBindInfo*)(toMap->pImageBinds + i));
+            }
         }
     }
     if (toMap->pSignalSemaphores)
@@ -424,6 +548,24 @@
     }
 }
 
+void handlemap_VkSparseImageFormatProperties(
+    VulkanHandleMapping* handlemap,
+    VkSparseImageFormatProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->imageGranularity));
+}
+
+void handlemap_VkSparseImageMemoryRequirements(
+    VulkanHandleMapping* handlemap,
+    VkSparseImageMemoryRequirements* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkSparseImageFormatProperties(handlemap, (VkSparseImageFormatProperties*)(&toMap->formatProperties));
+}
+
 void handlemap_VkFenceCreateInfo(
     VulkanHandleMapping* handlemap,
     VkFenceCreateInfo* toMap)
@@ -526,14 +668,6 @@
     (void)toMap;
 }
 
-void handlemap_VkImageSubresourceRange(
-    VulkanHandleMapping* handlemap,
-    VkImageSubresourceRange* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
 void handlemap_VkImageViewCreateInfo(
     VulkanHandleMapping* handlemap,
     VkImageViewCreateInfo* toMap)
@@ -587,11 +721,14 @@
 {
     (void)handlemap;
     (void)toMap;
-    if (toMap->pMapEntries)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->mapEntryCount; ++i)
+        if (toMap->pMapEntries)
         {
-            handlemap_VkSpecializationMapEntry(handlemap, (VkSpecializationMapEntry*)(toMap->pMapEntries + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->mapEntryCount; ++i)
+            {
+                handlemap_VkSpecializationMapEntry(handlemap, (VkSpecializationMapEntry*)(toMap->pMapEntries + i));
+            }
         }
     }
 }
@@ -613,6 +750,21 @@
     }
 }
 
+void handlemap_VkComputePipelineCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkComputePipelineCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkPipelineShaderStageCreateInfo(handlemap, (VkPipelineShaderStageCreateInfo*)(&toMap->stage));
+    handlemap->mapHandles_VkPipelineLayout((VkPipelineLayout*)&toMap->layout);
+    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->basePipelineHandle);
+}
+
 void handlemap_VkVertexInputBindingDescription(
     VulkanHandleMapping* handlemap,
     VkVertexInputBindingDescription* toMap)
@@ -639,18 +791,24 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pVertexBindingDescriptions)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->vertexBindingDescriptionCount; ++i)
+        if (toMap->pVertexBindingDescriptions)
         {
-            handlemap_VkVertexInputBindingDescription(handlemap, (VkVertexInputBindingDescription*)(toMap->pVertexBindingDescriptions + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->vertexBindingDescriptionCount; ++i)
+            {
+                handlemap_VkVertexInputBindingDescription(handlemap, (VkVertexInputBindingDescription*)(toMap->pVertexBindingDescriptions + i));
+            }
         }
     }
-    if (toMap->pVertexAttributeDescriptions)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->vertexAttributeDescriptionCount; ++i)
+        if (toMap->pVertexAttributeDescriptions)
         {
-            handlemap_VkVertexInputAttributeDescription(handlemap, (VkVertexInputAttributeDescription*)(toMap->pVertexAttributeDescriptions + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->vertexAttributeDescriptionCount; ++i)
+            {
+                handlemap_VkVertexInputAttributeDescription(handlemap, (VkVertexInputAttributeDescription*)(toMap->pVertexAttributeDescriptions + i));
+            }
         }
     }
 }
@@ -687,32 +845,6 @@
     (void)toMap;
 }
 
-void handlemap_VkOffset2D(
-    VulkanHandleMapping* handlemap,
-    VkOffset2D* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkExtent2D(
-    VulkanHandleMapping* handlemap,
-    VkExtent2D* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkRect2D(
-    VulkanHandleMapping* handlemap,
-    VkRect2D* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap_VkOffset2D(handlemap, (VkOffset2D*)(&toMap->offset));
-    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->extent));
-}
-
 void handlemap_VkPipelineViewportStateCreateInfo(
     VulkanHandleMapping* handlemap,
     VkPipelineViewportStateCreateInfo* toMap)
@@ -723,18 +855,24 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pViewports)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->viewportCount; ++i)
+        if (toMap->pViewports)
         {
-            handlemap_VkViewport(handlemap, (VkViewport*)(toMap->pViewports + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->viewportCount; ++i)
+            {
+                handlemap_VkViewport(handlemap, (VkViewport*)(toMap->pViewports + i));
+            }
         }
     }
-    if (toMap->pScissors)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->scissorCount; ++i)
+        if (toMap->pScissors)
         {
-            handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pScissors + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->scissorCount; ++i)
+            {
+                handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pScissors + i));
+            }
         }
     }
 }
@@ -803,11 +941,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pAttachments)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->attachmentCount; ++i)
+        if (toMap->pAttachments)
         {
-            handlemap_VkPipelineColorBlendAttachmentState(handlemap, (VkPipelineColorBlendAttachmentState*)(toMap->pAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->attachmentCount; ++i)
+            {
+                handlemap_VkPipelineColorBlendAttachmentState(handlemap, (VkPipelineColorBlendAttachmentState*)(toMap->pAttachments + i));
+            }
         }
     }
 }
@@ -834,11 +975,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pStages)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->stageCount; ++i)
+        if (toMap->pStages)
         {
-            handlemap_VkPipelineShaderStageCreateInfo(handlemap, (VkPipelineShaderStageCreateInfo*)(toMap->pStages + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->stageCount; ++i)
+            {
+                handlemap_VkPipelineShaderStageCreateInfo(handlemap, (VkPipelineShaderStageCreateInfo*)(toMap->pStages + i));
+            }
         }
     }
     if (toMap->pVertexInputState)
@@ -882,21 +1026,6 @@
     handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->basePipelineHandle);
 }
 
-void handlemap_VkComputePipelineCreateInfo(
-    VulkanHandleMapping* handlemap,
-    VkComputePipelineCreateInfo* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap_VkPipelineShaderStageCreateInfo(handlemap, (VkPipelineShaderStageCreateInfo*)(&toMap->stage));
-    handlemap->mapHandles_VkPipelineLayout((VkPipelineLayout*)&toMap->layout);
-    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->basePipelineHandle);
-}
-
 void handlemap_VkPushConstantRange(
     VulkanHandleMapping* handlemap,
     VkPushConstantRange* toMap)
@@ -919,11 +1048,14 @@
     {
         handlemap->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)toMap->pSetLayouts, toMap->setLayoutCount);
     }
-    if (toMap->pPushConstantRanges)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->pushConstantRangeCount; ++i)
+        if (toMap->pPushConstantRanges)
         {
-            handlemap_VkPushConstantRange(handlemap, (VkPushConstantRange*)(toMap->pPushConstantRanges + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->pushConstantRangeCount; ++i)
+            {
+                handlemap_VkPushConstantRange(handlemap, (VkPushConstantRange*)(toMap->pPushConstantRanges + i));
+            }
         }
     }
 }
@@ -940,6 +1072,86 @@
     }
 }
 
+void handlemap_VkCopyDescriptorSet(
+    VulkanHandleMapping* handlemap,
+    VkCopyDescriptorSet* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkDescriptorSet((VkDescriptorSet*)&toMap->srcSet);
+    handlemap->mapHandles_VkDescriptorSet((VkDescriptorSet*)&toMap->dstSet);
+}
+
+void handlemap_VkDescriptorBufferInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorBufferInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
+}
+
+void handlemap_VkDescriptorImageInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorImageInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap->mapHandles_VkSampler((VkSampler*)&toMap->sampler);
+    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->imageView);
+}
+
+void handlemap_VkDescriptorPoolSize(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorPoolSize* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkDescriptorPoolCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorPoolCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pPoolSizes)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->poolSizeCount; ++i)
+            {
+                handlemap_VkDescriptorPoolSize(handlemap, (VkDescriptorPoolSize*)(toMap->pPoolSizes + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkDescriptorSetAllocateInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorSetAllocateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkDescriptorPool((VkDescriptorPool*)&toMap->descriptorPool);
+    if (toMap->pSetLayouts)
+    {
+        handlemap->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)toMap->pSetLayouts, toMap->descriptorSetCount);
+    }
+}
+
 void handlemap_VkDescriptorSetLayoutBinding(
     VulkanHandleMapping* handlemap,
     VkDescriptorSetLayoutBinding* toMap)
@@ -962,78 +1174,18 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pBindings)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->bindingCount; ++i)
+        if (toMap->pBindings)
         {
-            handlemap_VkDescriptorSetLayoutBinding(handlemap, (VkDescriptorSetLayoutBinding*)(toMap->pBindings + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->bindingCount; ++i)
+            {
+                handlemap_VkDescriptorSetLayoutBinding(handlemap, (VkDescriptorSetLayoutBinding*)(toMap->pBindings + i));
+            }
         }
     }
 }
 
-void handlemap_VkDescriptorPoolSize(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorPoolSize* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkDescriptorPoolCreateInfo(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorPoolCreateInfo* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    if (toMap->pPoolSizes)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->poolSizeCount; ++i)
-        {
-            handlemap_VkDescriptorPoolSize(handlemap, (VkDescriptorPoolSize*)(toMap->pPoolSizes + i));
-        }
-    }
-}
-
-void handlemap_VkDescriptorSetAllocateInfo(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorSetAllocateInfo* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap->mapHandles_VkDescriptorPool((VkDescriptorPool*)&toMap->descriptorPool);
-    if (toMap->pSetLayouts)
-    {
-        handlemap->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)toMap->pSetLayouts, toMap->descriptorSetCount);
-    }
-}
-
-void handlemap_VkDescriptorImageInfo(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorImageInfo* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkSampler((VkSampler*)&toMap->sampler);
-    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->imageView);
-}
-
-void handlemap_VkDescriptorBufferInfo(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorBufferInfo* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
-}
-
 void handlemap_VkWriteDescriptorSet(
     VulkanHandleMapping* handlemap,
     VkWriteDescriptorSet* toMap)
@@ -1045,18 +1197,24 @@
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
     handlemap->mapHandles_VkDescriptorSet((VkDescriptorSet*)&toMap->dstSet);
-    if (toMap->pImageInfo)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->descriptorCount; ++i)
+        if (toMap->pImageInfo)
         {
-            handlemap_VkDescriptorImageInfo(handlemap, (VkDescriptorImageInfo*)(toMap->pImageInfo + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->descriptorCount; ++i)
+            {
+                handlemap_VkDescriptorImageInfo(handlemap, (VkDescriptorImageInfo*)(toMap->pImageInfo + i));
+            }
         }
     }
-    if (toMap->pBufferInfo)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->descriptorCount; ++i)
+        if (toMap->pBufferInfo)
         {
-            handlemap_VkDescriptorBufferInfo(handlemap, (VkDescriptorBufferInfo*)(toMap->pBufferInfo + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->descriptorCount; ++i)
+            {
+                handlemap_VkDescriptorBufferInfo(handlemap, (VkDescriptorBufferInfo*)(toMap->pBufferInfo + i));
+            }
         }
     }
     if (toMap->pTexelBufferView)
@@ -1065,37 +1223,6 @@
     }
 }
 
-void handlemap_VkCopyDescriptorSet(
-    VulkanHandleMapping* handlemap,
-    VkCopyDescriptorSet* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap->mapHandles_VkDescriptorSet((VkDescriptorSet*)&toMap->srcSet);
-    handlemap->mapHandles_VkDescriptorSet((VkDescriptorSet*)&toMap->dstSet);
-}
-
-void handlemap_VkFramebufferCreateInfo(
-    VulkanHandleMapping* handlemap,
-    VkFramebufferCreateInfo* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap->mapHandles_VkRenderPass((VkRenderPass*)&toMap->renderPass);
-    if (toMap->pAttachments)
-    {
-        handlemap->mapHandles_VkImageView((VkImageView*)toMap->pAttachments, toMap->attachmentCount);
-    }
-}
-
 void handlemap_VkAttachmentDescription(
     VulkanHandleMapping* handlemap,
     VkAttachmentDescription* toMap)
@@ -1112,31 +1239,57 @@
     (void)toMap;
 }
 
+void handlemap_VkFramebufferCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkRenderPass((VkRenderPass*)&toMap->renderPass);
+    if (toMap->pAttachments)
+    {
+        handlemap->mapHandles_VkImageView((VkImageView*)toMap->pAttachments, toMap->attachmentCount);
+    }
+}
+
 void handlemap_VkSubpassDescription(
     VulkanHandleMapping* handlemap,
     VkSubpassDescription* toMap)
 {
     (void)handlemap;
     (void)toMap;
-    if (toMap->pInputAttachments)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->inputAttachmentCount; ++i)
+        if (toMap->pInputAttachments)
         {
-            handlemap_VkAttachmentReference(handlemap, (VkAttachmentReference*)(toMap->pInputAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->inputAttachmentCount; ++i)
+            {
+                handlemap_VkAttachmentReference(handlemap, (VkAttachmentReference*)(toMap->pInputAttachments + i));
+            }
         }
     }
-    if (toMap->pColorAttachments)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
+        if (toMap->pColorAttachments)
         {
-            handlemap_VkAttachmentReference(handlemap, (VkAttachmentReference*)(toMap->pColorAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
+            {
+                handlemap_VkAttachmentReference(handlemap, (VkAttachmentReference*)(toMap->pColorAttachments + i));
+            }
         }
     }
-    if (toMap->pResolveAttachments)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
+        if (toMap->pResolveAttachments)
         {
-            handlemap_VkAttachmentReference(handlemap, (VkAttachmentReference*)(toMap->pResolveAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
+            {
+                handlemap_VkAttachmentReference(handlemap, (VkAttachmentReference*)(toMap->pResolveAttachments + i));
+            }
         }
     }
     if (toMap->pDepthStencilAttachment)
@@ -1163,25 +1316,34 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pAttachments)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->attachmentCount; ++i)
+        if (toMap->pAttachments)
         {
-            handlemap_VkAttachmentDescription(handlemap, (VkAttachmentDescription*)(toMap->pAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->attachmentCount; ++i)
+            {
+                handlemap_VkAttachmentDescription(handlemap, (VkAttachmentDescription*)(toMap->pAttachments + i));
+            }
         }
     }
-    if (toMap->pSubpasses)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->subpassCount; ++i)
+        if (toMap->pSubpasses)
         {
-            handlemap_VkSubpassDescription(handlemap, (VkSubpassDescription*)(toMap->pSubpasses + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->subpassCount; ++i)
+            {
+                handlemap_VkSubpassDescription(handlemap, (VkSubpassDescription*)(toMap->pSubpasses + i));
+            }
         }
     }
-    if (toMap->pDependencies)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->dependencyCount; ++i)
+        if (toMap->pDependencies)
         {
-            handlemap_VkSubpassDependency(handlemap, (VkSubpassDependency*)(toMap->pDependencies + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->dependencyCount; ++i)
+            {
+                handlemap_VkSubpassDependency(handlemap, (VkSubpassDependency*)(toMap->pDependencies + i));
+            }
         }
     }
 }
@@ -1257,37 +1419,6 @@
     (void)toMap;
 }
 
-void handlemap_VkImageCopy(
-    VulkanHandleMapping* handlemap,
-    VkImageCopy* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->srcSubresource));
-    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->srcOffset));
-    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->dstSubresource));
-    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->dstOffset));
-    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->extent));
-}
-
-void handlemap_VkImageBlit(
-    VulkanHandleMapping* handlemap,
-    VkImageBlit* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->srcSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        handlemap_VkOffset3D(handlemap, (VkOffset3D*)(toMap->srcOffsets + i));
-    }
-    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->dstSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        handlemap_VkOffset3D(handlemap, (VkOffset3D*)(toMap->dstOffsets + i));
-    }
-}
-
 void handlemap_VkBufferImageCopy(
     VulkanHandleMapping* handlemap,
     VkBufferImageCopy* toMap)
@@ -1343,6 +1474,37 @@
     handlemap_VkRect2D(handlemap, (VkRect2D*)(&toMap->rect));
 }
 
+void handlemap_VkImageBlit(
+    VulkanHandleMapping* handlemap,
+    VkImageBlit* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        handlemap_VkOffset3D(handlemap, (VkOffset3D*)(toMap->srcOffsets + i));
+    }
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        handlemap_VkOffset3D(handlemap, (VkOffset3D*)(toMap->dstOffsets + i));
+    }
+}
+
+void handlemap_VkImageCopy(
+    VulkanHandleMapping* handlemap,
+    VkImageCopy* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->srcSubresource));
+    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->srcOffset));
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->dstSubresource));
+    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->dstOffset));
+    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->extent));
+}
+
 void handlemap_VkImageResolve(
     VulkanHandleMapping* handlemap,
     VkImageResolve* toMap)
@@ -1356,45 +1518,6 @@
     handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->extent));
 }
 
-void handlemap_VkMemoryBarrier(
-    VulkanHandleMapping* handlemap,
-    VkMemoryBarrier* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkBufferMemoryBarrier(
-    VulkanHandleMapping* handlemap,
-    VkBufferMemoryBarrier* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
-}
-
-void handlemap_VkImageMemoryBarrier(
-    VulkanHandleMapping* handlemap,
-    VkImageMemoryBarrier* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap->mapHandles_VkImage((VkImage*)&toMap->image);
-    handlemap_VkImageSubresourceRange(handlemap, (VkImageSubresourceRange*)(&toMap->subresourceRange));
-}
-
 void handlemap_VkRenderPassBeginInfo(
     VulkanHandleMapping* handlemap,
     VkRenderPassBeginInfo* toMap)
@@ -1408,63 +1531,18 @@
     handlemap->mapHandles_VkRenderPass((VkRenderPass*)&toMap->renderPass);
     handlemap->mapHandles_VkFramebuffer((VkFramebuffer*)&toMap->framebuffer);
     handlemap_VkRect2D(handlemap, (VkRect2D*)(&toMap->renderArea));
-    if (toMap->pClearValues)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->clearValueCount; ++i)
+        if (toMap->pClearValues)
         {
-            handlemap_VkClearValue(handlemap, (VkClearValue*)(toMap->pClearValues + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->clearValueCount; ++i)
+            {
+                handlemap_VkClearValue(handlemap, (VkClearValue*)(toMap->pClearValues + i));
+            }
         }
     }
 }
 
-void handlemap_VkDispatchIndirectCommand(
-    VulkanHandleMapping* handlemap,
-    VkDispatchIndirectCommand* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkDrawIndexedIndirectCommand(
-    VulkanHandleMapping* handlemap,
-    VkDrawIndexedIndirectCommand* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkDrawIndirectCommand(
-    VulkanHandleMapping* handlemap,
-    VkDrawIndirectCommand* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkBaseOutStructure(
-    VulkanHandleMapping* handlemap,
-    VkBaseOutStructure* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkBaseInStructure(
-    VulkanHandleMapping* handlemap,
-    VkBaseInStructure* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
 #endif
 #ifdef VK_VERSION_1_1
 void handlemap_VkPhysicalDeviceSubgroupProperties(
@@ -1567,11 +1645,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pDeviceRenderAreas)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->deviceRenderAreaCount; ++i)
+        if (toMap->pDeviceRenderAreas)
         {
-            handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pDeviceRenderAreas + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->deviceRenderAreaCount; ++i)
+            {
+                handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pDeviceRenderAreas + i));
+            }
         }
     }
 }
@@ -1634,11 +1715,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pSplitInstanceBindRegions)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->splitInstanceBindRegionCount; ++i)
+        if (toMap->pSplitInstanceBindRegions)
         {
-            handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pSplitInstanceBindRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->splitInstanceBindRegionCount; ++i)
+            {
+                handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pSplitInstanceBindRegions + i));
+            }
         }
     }
 }
@@ -1882,11 +1966,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pAspectReferences)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->aspectReferenceCount; ++i)
+        if (toMap->pAspectReferences)
         {
-            handlemap_VkInputAttachmentAspectReference(handlemap, (VkInputAttachmentAspectReference*)(toMap->pAspectReferences + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->aspectReferenceCount; ++i)
+            {
+                handlemap_VkInputAttachmentAspectReference(handlemap, (VkInputAttachmentAspectReference*)(toMap->pAspectReferences + i));
+            }
         }
     }
 }
@@ -1951,9 +2038,9 @@
     }
 }
 
-void handlemap_VkPhysicalDeviceVariablePointerFeatures(
+void handlemap_VkPhysicalDeviceVariablePointersFeatures(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceVariablePointerFeatures* toMap)
+    VkPhysicalDeviceVariablePointersFeatures* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -2103,11 +2190,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pDescriptorUpdateEntries)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->descriptorUpdateEntryCount; ++i)
+        if (toMap->pDescriptorUpdateEntries)
         {
-            handlemap_VkDescriptorUpdateTemplateEntry(handlemap, (VkDescriptorUpdateTemplateEntry*)(toMap->pDescriptorUpdateEntries + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->descriptorUpdateEntryCount; ++i)
+            {
+                handlemap_VkDescriptorUpdateTemplateEntry(handlemap, (VkDescriptorUpdateTemplateEntry*)(toMap->pDescriptorUpdateEntries + i));
+            }
         }
     }
     handlemap->mapHandles_VkDescriptorSetLayout((VkDescriptorSetLayout*)&toMap->descriptorSetLayout);
@@ -2316,9 +2406,9 @@
     }
 }
 
-void handlemap_VkPhysicalDeviceShaderDrawParameterFeatures(
+void handlemap_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceShaderDrawParameterFeatures* toMap)
+    VkPhysicalDeviceShaderDrawParametersFeatures* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -2329,6 +2419,707 @@
 }
 
 #endif
+#ifdef VK_VERSION_1_2
+void handlemap_VkPhysicalDeviceVulkan11Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan11Features* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceVulkan11Properties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan11Properties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceVulkan12Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan12Features* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkConformanceVersion(
+    VulkanHandleMapping* handlemap,
+    VkConformanceVersion* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkPhysicalDeviceVulkan12Properties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan12Properties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkConformanceVersion(handlemap, (VkConformanceVersion*)(&toMap->conformanceVersion));
+}
+
+void handlemap_VkImageFormatListCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkImageFormatListCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkAttachmentDescription2(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentDescription2* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkAttachmentReference2(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentReference2* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSubpassDescription2(
+    VulkanHandleMapping* handlemap,
+    VkSubpassDescription2* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pInputAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->inputAttachmentCount; ++i)
+            {
+                handlemap_VkAttachmentReference2(handlemap, (VkAttachmentReference2*)(toMap->pInputAttachments + i));
+            }
+        }
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pColorAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
+            {
+                handlemap_VkAttachmentReference2(handlemap, (VkAttachmentReference2*)(toMap->pColorAttachments + i));
+            }
+        }
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pResolveAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
+            {
+                handlemap_VkAttachmentReference2(handlemap, (VkAttachmentReference2*)(toMap->pResolveAttachments + i));
+            }
+        }
+    }
+    if (toMap->pDepthStencilAttachment)
+    {
+        handlemap_VkAttachmentReference2(handlemap, (VkAttachmentReference2*)(toMap->pDepthStencilAttachment));
+    }
+}
+
+void handlemap_VkSubpassDependency2(
+    VulkanHandleMapping* handlemap,
+    VkSubpassDependency2* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkRenderPassCreateInfo2(
+    VulkanHandleMapping* handlemap,
+    VkRenderPassCreateInfo2* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->attachmentCount; ++i)
+            {
+                handlemap_VkAttachmentDescription2(handlemap, (VkAttachmentDescription2*)(toMap->pAttachments + i));
+            }
+        }
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pSubpasses)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->subpassCount; ++i)
+            {
+                handlemap_VkSubpassDescription2(handlemap, (VkSubpassDescription2*)(toMap->pSubpasses + i));
+            }
+        }
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pDependencies)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->dependencyCount; ++i)
+            {
+                handlemap_VkSubpassDependency2(handlemap, (VkSubpassDependency2*)(toMap->pDependencies + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkSubpassBeginInfo(
+    VulkanHandleMapping* handlemap,
+    VkSubpassBeginInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSubpassEndInfo(
+    VulkanHandleMapping* handlemap,
+    VkSubpassEndInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDevice8BitStorageFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevice8BitStorageFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceDriverProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDriverProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkConformanceVersion(handlemap, (VkConformanceVersion*)(&toMap->conformanceVersion));
+}
+
+void handlemap_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderAtomicInt64Features* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderFloat16Int8Features* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceFloatControlsProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFloatControlsProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDescriptorIndexingFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDescriptorIndexingProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSubpassDescriptionDepthStencilResolve(
+    VulkanHandleMapping* handlemap,
+    VkSubpassDescriptionDepthStencilResolve* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pDepthStencilResolveAttachment)
+    {
+        handlemap_VkAttachmentReference2(handlemap, (VkAttachmentReference2*)(toMap->pDepthStencilResolveAttachment));
+    }
+}
+
+void handlemap_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDepthStencilResolveProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkImageStencilUsageCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkImageStencilUsageCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSamplerReductionModeCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkSamplerReductionModeCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImagelessFramebufferFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkFramebufferAttachmentImageInfo(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferAttachmentImageInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkFramebufferAttachmentsCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferAttachmentsCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pAttachmentImageInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->attachmentImageInfoCount; ++i)
+            {
+                handlemap_VkFramebufferAttachmentImageInfo(handlemap, (VkFramebufferAttachmentImageInfo*)(toMap->pAttachmentImageInfos + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkRenderPassAttachmentBeginInfo(
+    VulkanHandleMapping* handlemap,
+    VkRenderPassAttachmentBeginInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pAttachments)
+    {
+        handlemap->mapHandles_VkImageView((VkImageView*)toMap->pAttachments, toMap->attachmentCount);
+    }
+}
+
+void handlemap_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkAttachmentReferenceStencilLayout(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentReferenceStencilLayout* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkAttachmentDescriptionStencilLayout(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentDescriptionStencilLayout* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceHostQueryResetFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTimelineSemaphoreProperties* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSemaphoreTypeCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreTypeCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkTimelineSemaphoreSubmitInfo(
+    VulkanHandleMapping* handlemap,
+    VkTimelineSemaphoreSubmitInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSemaphoreWaitInfo(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreWaitInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pSemaphores)
+    {
+        handlemap->mapHandles_VkSemaphore((VkSemaphore*)toMap->pSemaphores, toMap->semaphoreCount);
+    }
+}
+
+void handlemap_VkSemaphoreSignalInfo(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreSignalInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkSemaphore((VkSemaphore*)&toMap->semaphore);
+}
+
+void handlemap_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkBufferDeviceAddressInfo(
+    VulkanHandleMapping* handlemap,
+    VkBufferDeviceAddressInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
+}
+
+void handlemap_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkBufferOpaqueCaptureAddressCreateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanHandleMapping* handlemap,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanHandleMapping* handlemap,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkDeviceMemory((VkDeviceMemory*)&toMap->memory);
+}
+
+#endif
 #ifdef VK_KHR_surface
 void handlemap_VkSurfaceCapabilitiesKHR(
     VulkanHandleMapping* handlemap,
@@ -2465,17 +3256,6 @@
 
 #endif
 #ifdef VK_KHR_display
-void handlemap_VkDisplayPropertiesKHR(
-    VulkanHandleMapping* handlemap,
-    VkDisplayPropertiesKHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkDisplayKHR((VkDisplayKHR*)&toMap->display);
-    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->physicalDimensions));
-    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->physicalResolution));
-}
-
 void handlemap_VkDisplayModeParametersKHR(
     VulkanHandleMapping* handlemap,
     VkDisplayModeParametersKHR* toMap)
@@ -2485,16 +3265,6 @@
     handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->visibleRegion));
 }
 
-void handlemap_VkDisplayModePropertiesKHR(
-    VulkanHandleMapping* handlemap,
-    VkDisplayModePropertiesKHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkDisplayModeKHR((VkDisplayModeKHR*)&toMap->displayMode);
-    handlemap_VkDisplayModeParametersKHR(handlemap, (VkDisplayModeParametersKHR*)(&toMap->parameters));
-}
-
 void handlemap_VkDisplayModeCreateInfoKHR(
     VulkanHandleMapping* handlemap,
     VkDisplayModeCreateInfoKHR* toMap)
@@ -2508,6 +3278,16 @@
     handlemap_VkDisplayModeParametersKHR(handlemap, (VkDisplayModeParametersKHR*)(&toMap->parameters));
 }
 
+void handlemap_VkDisplayModePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkDisplayModePropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap->mapHandles_VkDisplayModeKHR((VkDisplayModeKHR*)&toMap->displayMode);
+    handlemap_VkDisplayModeParametersKHR(handlemap, (VkDisplayModeParametersKHR*)(&toMap->parameters));
+}
+
 void handlemap_VkDisplayPlaneCapabilitiesKHR(
     VulkanHandleMapping* handlemap,
     VkDisplayPlaneCapabilitiesKHR* toMap)
@@ -2533,6 +3313,17 @@
     handlemap->mapHandles_VkDisplayKHR((VkDisplayKHR*)&toMap->currentDisplay);
 }
 
+void handlemap_VkDisplayPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkDisplayPropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap->mapHandles_VkDisplayKHR((VkDisplayKHR*)&toMap->display);
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->physicalDimensions));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->physicalResolution));
+}
+
 void handlemap_VkDisplaySurfaceCreateInfoKHR(
     VulkanHandleMapping* handlemap,
     VkDisplaySurfaceCreateInfoKHR* toMap)
@@ -2606,20 +3397,6 @@
 }
 
 #endif
-#ifdef VK_KHR_mir_surface
-void handlemap_VkMirSurfaceCreateInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkMirSurfaceCreateInfoKHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-#endif
 #ifdef VK_KHR_android_surface
 void handlemap_VkAndroidSurfaceCreateInfoKHR(
     VulkanHandleMapping* handlemap,
@@ -2876,6 +3653,8 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -2895,11 +3674,14 @@
 {
     (void)handlemap;
     (void)toMap;
-    if (toMap->pRectangles)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->rectangleCount; ++i)
+        if (toMap->pRectangles)
         {
-            handlemap_VkRectLayerKHR(handlemap, (VkRectLayerKHR*)(toMap->pRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->rectangleCount; ++i)
+            {
+                handlemap_VkRectLayerKHR(handlemap, (VkRectLayerKHR*)(toMap->pRectangles + i));
+            }
         }
     }
 }
@@ -2914,11 +3696,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pRegions)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->swapchainCount; ++i)
+        if (toMap->pRegions)
         {
-            handlemap_VkPresentRegionKHR(handlemap, (VkPresentRegionKHR*)(toMap->pRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->swapchainCount; ++i)
+            {
+                handlemap_VkPresentRegionKHR(handlemap, (VkPresentRegionKHR*)(toMap->pRegions + i));
+            }
         }
     }
 }
@@ -2926,137 +3711,9 @@
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
-void handlemap_VkAttachmentDescription2KHR(
-    VulkanHandleMapping* handlemap,
-    VkAttachmentDescription2KHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkAttachmentReference2KHR(
-    VulkanHandleMapping* handlemap,
-    VkAttachmentReference2KHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkSubpassDescription2KHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassDescription2KHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    if (toMap->pInputAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->inputAttachmentCount; ++i)
-        {
-            handlemap_VkAttachmentReference2KHR(handlemap, (VkAttachmentReference2KHR*)(toMap->pInputAttachments + i));
-        }
-    }
-    if (toMap->pColorAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
-        {
-            handlemap_VkAttachmentReference2KHR(handlemap, (VkAttachmentReference2KHR*)(toMap->pColorAttachments + i));
-        }
-    }
-    if (toMap->pResolveAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->colorAttachmentCount; ++i)
-        {
-            handlemap_VkAttachmentReference2KHR(handlemap, (VkAttachmentReference2KHR*)(toMap->pResolveAttachments + i));
-        }
-    }
-    if (toMap->pDepthStencilAttachment)
-    {
-        handlemap_VkAttachmentReference2KHR(handlemap, (VkAttachmentReference2KHR*)(toMap->pDepthStencilAttachment));
-    }
-}
-
-void handlemap_VkSubpassDependency2KHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassDependency2KHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkRenderPassCreateInfo2KHR(
-    VulkanHandleMapping* handlemap,
-    VkRenderPassCreateInfo2KHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    if (toMap->pAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->attachmentCount; ++i)
-        {
-            handlemap_VkAttachmentDescription2KHR(handlemap, (VkAttachmentDescription2KHR*)(toMap->pAttachments + i));
-        }
-    }
-    if (toMap->pSubpasses)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->subpassCount; ++i)
-        {
-            handlemap_VkSubpassDescription2KHR(handlemap, (VkSubpassDescription2KHR*)(toMap->pSubpasses + i));
-        }
-    }
-    if (toMap->pDependencies)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->dependencyCount; ++i)
-        {
-            handlemap_VkSubpassDependency2KHR(handlemap, (VkSubpassDependency2KHR*)(toMap->pDependencies + i));
-        }
-    }
-}
-
-void handlemap_VkSubpassBeginInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassBeginInfoKHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkSubpassEndInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassEndInfoKHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void handlemap_VkSharedPresentSurfaceCapabilitiesKHR(
@@ -3144,6 +3801,100 @@
 }
 
 #endif
+#ifdef VK_KHR_performance_query
+void handlemap_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceCounterKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceCounterKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceCounterDescriptionKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceCounterDescriptionKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkQueryPoolPerformanceCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceCounterResultKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceCounterResultKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkAcquireProfilingLockInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAcquireProfilingLockInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceQuerySubmitInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceQuerySubmitInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -3265,31 +4016,27 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void handlemap_VkImageFormatListCreateInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkImageFormatListCreateInfoKHR* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
 #endif
 #ifdef VK_KHR_bind_memory2
 #endif
-#ifdef VK_KHR_maintenance3
-#endif
-#ifdef VK_KHR_draw_indirect_count
-#endif
-#ifdef VK_KHR_8bit_storage
-void handlemap_VkPhysicalDevice8BitStorageFeaturesKHR(
+#ifdef VK_KHR_portability_subset
+void handlemap_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDevice8BitStorageFeaturesKHR* toMap)
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -3300,10 +4047,20 @@
 }
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void handlemap_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_maintenance3
+#endif
+#ifdef VK_KHR_draw_indirect_count
+#endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
+#ifdef VK_KHR_8bit_storage
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+void handlemap_VkPhysicalDeviceShaderClockFeaturesKHR(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceShaderFloat16Int8Features* toMap)
+    VkPhysicalDeviceShaderClockFeaturesKHR* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -3314,6 +4071,462 @@
 }
 
 #endif
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void handlemap_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void handlemap_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkFragmentShadingRateAttachmentInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pFragmentShadingRateAttachment)
+    {
+        handlemap_VkAttachmentReference2(handlemap, (VkAttachmentReference2*)(toMap->pFragmentShadingRateAttachment));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->shadingRateAttachmentTexelSize));
+}
+
+void handlemap_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->fragmentSize));
+}
+
+void handlemap_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->minFragmentShadingRateAttachmentTexelSize));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->maxFragmentShadingRateAttachmentTexelSize));
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->maxFragmentSize));
+}
+
+void handlemap_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->fragmentSize));
+}
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void handlemap_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceProtectedCapabilitiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void handlemap_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->pipeline);
+}
+
+void handlemap_VkPipelineExecutablePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutablePropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineExecutableInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->pipeline);
+}
+
+void handlemap_VkPipelineExecutableStatisticValueKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableStatisticValueKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkPipelineExecutableStatisticKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableStatisticKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkPipelineExecutableStatisticValueKHR(handlemap, (VkPipelineExecutableStatisticValueKHR*)(&toMap->value));
+}
+
+void handlemap_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableInternalRepresentationKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void handlemap_VkPipelineLibraryCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineLibraryCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pLibraries)
+    {
+        handlemap->mapHandles_VkPipeline((VkPipeline*)toMap->pLibraries, toMap->libraryCount);
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void handlemap_VkBufferCopy2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBufferCopy2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkCopyBufferInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyBufferInfo2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->srcBuffer);
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->dstBuffer);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->regionCount; ++i)
+            {
+                handlemap_VkBufferCopy2KHR(handlemap, (VkBufferCopy2KHR*)(toMap->pRegions + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkImageCopy2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageCopy2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->srcSubresource));
+    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->srcOffset));
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->dstSubresource));
+    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->dstOffset));
+    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->extent));
+}
+
+void handlemap_VkCopyImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyImageInfo2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->srcImage);
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->dstImage);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->regionCount; ++i)
+            {
+                handlemap_VkImageCopy2KHR(handlemap, (VkImageCopy2KHR*)(toMap->pRegions + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkBufferImageCopy2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBufferImageCopy2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->imageSubresource));
+    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->imageOffset));
+    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->imageExtent));
+}
+
+void handlemap_VkCopyBufferToImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyBufferToImageInfo2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->srcBuffer);
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->dstImage);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->regionCount; ++i)
+            {
+                handlemap_VkBufferImageCopy2KHR(handlemap, (VkBufferImageCopy2KHR*)(toMap->pRegions + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkCopyImageToBufferInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyImageToBufferInfo2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->srcImage);
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->dstBuffer);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->regionCount; ++i)
+            {
+                handlemap_VkBufferImageCopy2KHR(handlemap, (VkBufferImageCopy2KHR*)(toMap->pRegions + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkImageBlit2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageBlit2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        handlemap_VkOffset3D(handlemap, (VkOffset3D*)(toMap->srcOffsets + i));
+    }
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        handlemap_VkOffset3D(handlemap, (VkOffset3D*)(toMap->dstOffsets + i));
+    }
+}
+
+void handlemap_VkBlitImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBlitImageInfo2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->srcImage);
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->dstImage);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->regionCount; ++i)
+            {
+                handlemap_VkImageBlit2KHR(handlemap, (VkImageBlit2KHR*)(toMap->pRegions + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkImageResolve2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageResolve2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->srcSubresource));
+    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->srcOffset));
+    handlemap_VkImageSubresourceLayers(handlemap, (VkImageSubresourceLayers*)(&toMap->dstSubresource));
+    handlemap_VkOffset3D(handlemap, (VkOffset3D*)(&toMap->dstOffset));
+    handlemap_VkExtent3D(handlemap, (VkExtent3D*)(&toMap->extent));
+}
+
+void handlemap_VkResolveImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkResolveImageInfo2KHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->srcImage);
+    handlemap->mapHandles_VkImage((VkImage*)&toMap->dstImage);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->regionCount; ++i)
+            {
+                handlemap_VkImageResolve2KHR(handlemap, (VkImageResolve2KHR*)(toMap->pRegions + i));
+            }
+        }
+    }
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void handlemap_VkNativeBufferANDROID(
     VulkanHandleMapping* handlemap,
@@ -3446,6 +4659,72 @@
 }
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void handlemap_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void handlemap_VkImageViewHandleInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkImageViewHandleInfoNVX* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkImageView((VkImageView*)&toMap->imageView);
+    handlemap->mapHandles_VkSampler((VkSampler*)&toMap->sampler);
+}
+
+void handlemap_VkImageViewAddressPropertiesNVX(
+    VulkanHandleMapping* handlemap,
+    VkImageViewAddressPropertiesNVX* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -3489,6 +4768,34 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void handlemap_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanHandleMapping* handlemap,
+    VkStreamDescriptorSurfaceCreateInfoGGP* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void handlemap_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -3608,6 +4915,46 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void handlemap_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void handlemap_VkImageViewASTCDecodeModeEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageViewASTCDecodeModeEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void handlemap_VkConditionalRenderingBeginInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -3647,172 +4994,6 @@
 }
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void handlemap_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanHandleMapping* handlemap,
-    VkDeviceGeneratedCommandsFeaturesNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanHandleMapping* handlemap,
-    VkDeviceGeneratedCommandsLimitsNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkIndirectCommandsTokenNVX(
-    VulkanHandleMapping* handlemap,
-    VkIndirectCommandsTokenNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
-}
-
-void handlemap_VkIndirectCommandsLayoutTokenNVX(
-    VulkanHandleMapping* handlemap,
-    VkIndirectCommandsLayoutTokenNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkIndirectCommandsLayoutCreateInfoNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    if (toMap->pTokens)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->tokenCount; ++i)
-        {
-            handlemap_VkIndirectCommandsLayoutTokenNVX(handlemap, (VkIndirectCommandsLayoutTokenNVX*)(toMap->pTokens + i));
-        }
-    }
-}
-
-void handlemap_VkCmdProcessCommandsInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkCmdProcessCommandsInfoNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap->mapHandles_VkObjectTableNVX((VkObjectTableNVX*)&toMap->objectTable);
-    handlemap->mapHandles_VkIndirectCommandsLayoutNVX((VkIndirectCommandsLayoutNVX*)&toMap->indirectCommandsLayout);
-    if (toMap->pIndirectCommandsTokens)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toMap->indirectCommandsTokenCount; ++i)
-        {
-            handlemap_VkIndirectCommandsTokenNVX(handlemap, (VkIndirectCommandsTokenNVX*)(toMap->pIndirectCommandsTokens + i));
-        }
-    }
-    handlemap->mapHandles_VkCommandBuffer((VkCommandBuffer*)&toMap->targetCommandBuffer);
-    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->sequencesCountBuffer);
-    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->sequencesIndexBuffer);
-}
-
-void handlemap_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkCmdReserveSpaceForCommandsInfoNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-    handlemap->mapHandles_VkObjectTableNVX((VkObjectTableNVX*)&toMap->objectTable);
-    handlemap->mapHandles_VkIndirectCommandsLayoutNVX((VkIndirectCommandsLayoutNVX*)&toMap->indirectCommandsLayout);
-}
-
-void handlemap_VkObjectTableCreateInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableCreateInfoNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkObjectTableEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableEntryNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-}
-
-void handlemap_VkObjectTablePipelineEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTablePipelineEntryNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->pipeline);
-}
-
-void handlemap_VkObjectTableDescriptorSetEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableDescriptorSetEntryNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkPipelineLayout((VkPipelineLayout*)&toMap->pipelineLayout);
-    handlemap->mapHandles_VkDescriptorSet((VkDescriptorSet*)&toMap->descriptorSet);
-}
-
-void handlemap_VkObjectTableVertexBufferEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableVertexBufferEntryNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
-}
-
-void handlemap_VkObjectTableIndexBufferEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableIndexBufferEntryNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
-}
-
-void handlemap_VkObjectTablePushConstantEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTablePushConstantEntryNVX* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    handlemap->mapHandles_VkPipelineLayout((VkPipelineLayout*)&toMap->pipelineLayout);
-}
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void handlemap_VkViewportWScalingNV(
     VulkanHandleMapping* handlemap,
@@ -3832,11 +5013,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pViewportWScalings)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->viewportCount; ++i)
+        if (toMap->pViewportWScalings)
         {
-            handlemap_VkViewportWScalingNV(handlemap, (VkViewportWScalingNV*)(toMap->pViewportWScalings + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->viewportCount; ++i)
+            {
+                handlemap_VkViewportWScalingNV(handlemap, (VkViewportWScalingNV*)(toMap->pViewportWScalings + i));
+            }
         }
     }
 }
@@ -3948,11 +5132,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pTimes)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->swapchainCount; ++i)
+        if (toMap->pTimes)
         {
-            handlemap_VkPresentTimeGOOGLE(handlemap, (VkPresentTimeGOOGLE*)(toMap->pTimes + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->swapchainCount; ++i)
+            {
+                handlemap_VkPresentTimeGOOGLE(handlemap, (VkPresentTimeGOOGLE*)(toMap->pTimes + i));
+            }
         }
     }
 }
@@ -3997,11 +5184,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pViewportSwizzles)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->viewportCount; ++i)
+        if (toMap->pViewportSwizzles)
         {
-            handlemap_VkViewportSwizzleNV(handlemap, (VkViewportSwizzleNV*)(toMap->pViewportSwizzles + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->viewportCount; ++i)
+            {
+                handlemap_VkViewportSwizzleNV(handlemap, (VkViewportSwizzleNV*)(toMap->pViewportSwizzles + i));
+            }
         }
     }
 }
@@ -4030,11 +5220,14 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pDiscardRectangles)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->discardRectangleCount; ++i)
+        if (toMap->pDiscardRectangles)
         {
-            handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pDiscardRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->discardRectangleCount; ++i)
+            {
+                handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pDiscardRectangles + i));
+            }
         }
     }
 }
@@ -4066,6 +5259,32 @@
 }
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void handlemap_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -4122,35 +5341,13 @@
 }
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void handlemap_VkDebugUtilsObjectNameInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkDebugUtilsObjectNameInfoEXT* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkDebugUtilsObjectTagInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkDebugUtilsObjectTagInfoEXT* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
 void handlemap_VkDebugUtilsLabelEXT(
     VulkanHandleMapping* handlemap,
     VkDebugUtilsLabelEXT* toMap)
@@ -4163,6 +5360,18 @@
     }
 }
 
+void handlemap_VkDebugUtilsObjectNameInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDebugUtilsObjectNameInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 void handlemap_VkDebugUtilsMessengerCallbackDataEXT(
     VulkanHandleMapping* handlemap,
     VkDebugUtilsMessengerCallbackDataEXT* toMap)
@@ -4173,25 +5382,34 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pQueueLabels)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->queueLabelCount; ++i)
+        if (toMap->pQueueLabels)
         {
-            handlemap_VkDebugUtilsLabelEXT(handlemap, (VkDebugUtilsLabelEXT*)(toMap->pQueueLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->queueLabelCount; ++i)
+            {
+                handlemap_VkDebugUtilsLabelEXT(handlemap, (VkDebugUtilsLabelEXT*)(toMap->pQueueLabels + i));
+            }
         }
     }
-    if (toMap->pCmdBufLabels)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->cmdBufLabelCount; ++i)
+        if (toMap->pCmdBufLabels)
         {
-            handlemap_VkDebugUtilsLabelEXT(handlemap, (VkDebugUtilsLabelEXT*)(toMap->pCmdBufLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->cmdBufLabelCount; ++i)
+            {
+                handlemap_VkDebugUtilsLabelEXT(handlemap, (VkDebugUtilsLabelEXT*)(toMap->pCmdBufLabels + i));
+            }
         }
     }
-    if (toMap->pObjects)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->objectCount; ++i)
+        if (toMap->pObjects)
         {
-            handlemap_VkDebugUtilsObjectNameInfoEXT(handlemap, (VkDebugUtilsObjectNameInfoEXT*)(toMap->pObjects + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->objectCount; ++i)
+            {
+                handlemap_VkDebugUtilsObjectNameInfoEXT(handlemap, (VkDebugUtilsObjectNameInfoEXT*)(toMap->pObjects + i));
+            }
         }
     }
 }
@@ -4208,6 +5426,18 @@
     }
 }
 
+void handlemap_VkDebugUtilsObjectTagInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDebugUtilsObjectTagInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void handlemap_VkAndroidHardwareBufferUsageANDROID(
@@ -4286,30 +5516,6 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void handlemap_VkSamplerReductionModeCreateInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkSamplerReductionModeCreateInfoEXT* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
-void handlemap_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toMap)
-{
-    (void)handlemap;
-    (void)toMap;
-    if (toMap->pNext)
-    {
-        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
-    }
-}
-
 #endif
 #ifdef VK_AMD_gpu_shader_int16
 #endif
@@ -4317,6 +5523,56 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void handlemap_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanHandleMapping* handlemap,
+    VkWriteDescriptorSetInlineUniformBlockEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -4339,11 +5595,14 @@
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
     handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->sampleLocationGridSize));
-    if (toMap->pSampleLocations)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->sampleLocationsCount; ++i)
+        if (toMap->pSampleLocations)
         {
-            handlemap_VkSampleLocationEXT(handlemap, (VkSampleLocationEXT*)(toMap->pSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->sampleLocationsCount; ++i)
+            {
+                handlemap_VkSampleLocationEXT(handlemap, (VkSampleLocationEXT*)(toMap->pSampleLocations + i));
+            }
         }
     }
 }
@@ -4376,18 +5635,24 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pAttachmentInitialSampleLocations)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->attachmentInitialSampleLocationsCount; ++i)
+        if (toMap->pAttachmentInitialSampleLocations)
         {
-            handlemap_VkAttachmentSampleLocationsEXT(handlemap, (VkAttachmentSampleLocationsEXT*)(toMap->pAttachmentInitialSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->attachmentInitialSampleLocationsCount; ++i)
+            {
+                handlemap_VkAttachmentSampleLocationsEXT(handlemap, (VkAttachmentSampleLocationsEXT*)(toMap->pAttachmentInitialSampleLocations + i));
+            }
         }
     }
-    if (toMap->pPostSubpassSampleLocations)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->postSubpassSampleLocationsCount; ++i)
+        if (toMap->pPostSubpassSampleLocations)
         {
-            handlemap_VkSubpassSampleLocationsEXT(handlemap, (VkSubpassSampleLocationsEXT*)(toMap->pPostSubpassSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->postSubpassSampleLocationsCount; ++i)
+            {
+                handlemap_VkSubpassSampleLocationsEXT(handlemap, (VkSubpassSampleLocationsEXT*)(toMap->pPostSubpassSampleLocations + i));
+            }
         }
     }
 }
@@ -4500,8 +5765,124 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void handlemap_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void handlemap_VkDrmFormatModifierPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkDrmFormatModifierPropertiesListEXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierPropertiesListEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pDrmFormatModifierProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->drmFormatModifierCount; ++i)
+            {
+                handlemap_VkDrmFormatModifierPropertiesEXT(handlemap, (VkDrmFormatModifierPropertiesEXT*)(toMap->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageDrmFormatModifierListCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pPlaneLayouts)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->drmFormatModifierPlaneCount; ++i)
+            {
+                handlemap_VkSubresourceLayout(handlemap, (VkSubresourceLayout*)(toMap->pPlaneLayouts + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageDrmFormatModifierPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_validation_cache
 void handlemap_VkValidationCacheCreateInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -4530,9 +5911,43 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+#endif
+#ifdef VK_EXT_shader_viewport_index_layer
+#endif
+#ifdef VK_NV_shading_rate_image
+void handlemap_VkShadingRatePaletteNV(
     VulkanHandleMapping* handlemap,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toMap)
+    VkShadingRatePaletteNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pShadingRatePalettes)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->viewportCount; ++i)
+            {
+                handlemap_VkShadingRatePaletteNV(handlemap, (VkShadingRatePaletteNV*)(toMap->pShadingRatePalettes + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -4542,9 +5957,72 @@
     }
 }
 
-void handlemap_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void handlemap_VkPhysicalDeviceShadingRateImagePropertiesNV(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toMap)
+    VkPhysicalDeviceShadingRateImagePropertiesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkExtent2D(handlemap, (VkExtent2D*)(&toMap->shadingRateTexelSize));
+}
+
+void handlemap_VkCoarseSampleLocationNV(
+    VulkanHandleMapping* handlemap,
+    VkCoarseSampleLocationNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkCoarseSampleOrderCustomNV(
+    VulkanHandleMapping* handlemap,
+    VkCoarseSampleOrderCustomNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pSampleLocations)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->sampleLocationCount; ++i)
+            {
+                handlemap_VkCoarseSampleLocationNV(handlemap, (VkCoarseSampleLocationNV*)(toMap->pSampleLocations + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pCustomSampleOrders)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->customSampleOrderCount; ++i)
+            {
+                handlemap_VkCoarseSampleOrderCustomNV(handlemap, (VkCoarseSampleOrderCustomNV*)(toMap->pCustomSampleOrders + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_NV_ray_tracing
+void handlemap_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingShaderGroupCreateInfoNV* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -4554,9 +6032,172 @@
     }
 }
 
-void handlemap_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void handlemap_VkRayTracingPipelineCreateInfoNV(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toMap)
+    VkRayTracingPipelineCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->stageCount; ++i)
+            {
+                handlemap_VkPipelineShaderStageCreateInfo(handlemap, (VkPipelineShaderStageCreateInfo*)(toMap->pStages + i));
+            }
+        }
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->groupCount; ++i)
+            {
+                handlemap_VkRayTracingShaderGroupCreateInfoNV(handlemap, (VkRayTracingShaderGroupCreateInfoNV*)(toMap->pGroups + i));
+            }
+        }
+    }
+    handlemap->mapHandles_VkPipelineLayout((VkPipelineLayout*)&toMap->layout);
+    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->basePipelineHandle);
+}
+
+void handlemap_VkGeometryTrianglesNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryTrianglesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->vertexData);
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->indexData);
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->transformData);
+}
+
+void handlemap_VkGeometryAABBNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryAABBNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->aabbData);
+}
+
+void handlemap_VkGeometryDataNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryDataNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkGeometryTrianglesNV(handlemap, (VkGeometryTrianglesNV*)(&toMap->triangles));
+    handlemap_VkGeometryAABBNV(handlemap, (VkGeometryAABBNV*)(&toMap->aabbs));
+}
+
+void handlemap_VkGeometryNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkGeometryDataNV(handlemap, (VkGeometryDataNV*)(&toMap->geometry));
+}
+
+void handlemap_VkAccelerationStructureInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pGeometries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->geometryCount; ++i)
+            {
+                handlemap_VkGeometryNV(handlemap, (VkGeometryNV*)(toMap->pGeometries + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkAccelerationStructureCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkAccelerationStructureInfoNV(handlemap, (VkAccelerationStructureInfoNV*)(&toMap->info));
+}
+
+void handlemap_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkBindAccelerationStructureMemoryInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkAccelerationStructureNV((VkAccelerationStructureNV*)&toMap->accelerationStructure);
+    handlemap->mapHandles_VkDeviceMemory((VkDeviceMemory*)&toMap->memory);
+}
+
+void handlemap_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanHandleMapping* handlemap,
+    VkWriteDescriptorSetAccelerationStructureNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pAccelerationStructures)
+    {
+        handlemap->mapHandles_VkAccelerationStructureNV((VkAccelerationStructureNV*)toMap->pAccelerationStructures, toMap->accelerationStructureCount);
+    }
+}
+
+void handlemap_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMemoryRequirementsInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkAccelerationStructureNV((VkAccelerationStructureNV*)&toMap->accelerationStructure);
+}
+
+void handlemap_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingPropertiesNV* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -4566,9 +6207,36 @@
     }
 }
 
-void handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void handlemap_VkTransformMatrixKHR(
     VulkanHandleMapping* handlemap,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toMap)
+    VkTransformMatrixKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkAabbPositionsKHR(
+    VulkanHandleMapping* handlemap,
+    VkAabbPositionsKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkAccelerationStructureInstanceKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureInstanceKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkTransformMatrixKHR(handlemap, (VkTransformMatrixKHR*)(&toMap->transform));
+}
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void handlemap_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -4578,9 +6246,9 @@
     }
 }
 
-void handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void handlemap_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
     VulkanHandleMapping* handlemap,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toMap)
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toMap)
 {
     (void)handlemap;
     (void)toMap;
@@ -4591,7 +6259,33 @@
 }
 
 #endif
-#ifdef VK_EXT_shader_viewport_index_layer
+#ifdef VK_EXT_filter_cubic
+void handlemap_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
 #endif
 #ifdef VK_EXT_global_priority
 void handlemap_VkDeviceQueueGlobalPriorityCreateInfoEXT(
@@ -4647,6 +6341,34 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void handlemap_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCompilerControlCreateInfoAMD* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void handlemap_VkCalibratedTimestampInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkCalibratedTimestampInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void handlemap_VkPhysicalDeviceShaderCorePropertiesAMD(
     VulkanHandleMapping* handlemap,
@@ -4661,6 +6383,20 @@
 }
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void handlemap_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkDeviceMemoryOverallocationCreateInfoAMD* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void handlemap_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     VulkanHandleMapping* handlemap,
@@ -4692,11 +6428,76 @@
     {
         handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
     }
-    if (toMap->pVertexBindingDivisors)
+    if ((toMap) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toMap->vertexBindingDivisorCount; ++i)
+        if (toMap->pVertexBindingDivisors)
         {
-            handlemap_VkVertexInputBindingDivisorDescriptionEXT(handlemap, (VkVertexInputBindingDivisorDescriptionEXT*)(toMap->pVertexBindingDivisors + i));
+            for (uint32_t i = 0; i < (uint32_t)toMap->vertexBindingDivisorCount; ++i)
+            {
+                handlemap_VkVertexInputBindingDivisorDescriptionEXT(handlemap, (VkVertexInputBindingDivisorDescriptionEXT*)(toMap->pVertexBindingDivisors + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GGP_frame_token
+void handlemap_VkPresentFrameTokenGGP(
+    VulkanHandleMapping* handlemap,
+    VkPresentFrameTokenGGP* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void handlemap_VkPipelineCreationFeedbackEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCreationFeedbackEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCreationFeedbackCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pPipelineCreationFeedback)
+    {
+        handlemap_VkPipelineCreationFeedbackEXT(handlemap, (VkPipelineCreationFeedbackEXT*)(toMap->pPipelineCreationFeedback));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pPipelineStageCreationFeedbacks)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->pipelineStageCreationFeedbackCount; ++i)
+            {
+                handlemap_VkPipelineCreationFeedbackEXT(handlemap, (VkPipelineCreationFeedbackEXT*)(toMap->pPipelineStageCreationFeedbacks + i));
+            }
         }
     }
 }
@@ -4704,6 +6505,118 @@
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void handlemap_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_mesh_shader
+void handlemap_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMeshShaderFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMeshShaderPropertiesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDrawMeshTasksIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkDrawMeshTasksIndirectCommandNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void handlemap_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void handlemap_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void handlemap_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pExclusiveScissors)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->exclusiveScissorCount; ++i)
+            {
+                handlemap_VkRect2D(handlemap, (VkRect2D*)(toMap->pExclusiveScissors + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void handlemap_VkQueueFamilyCheckpointPropertiesNV(
     VulkanHandleMapping* handlemap,
@@ -4730,7 +6643,178 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void handlemap_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_INTEL_performance_query
+void handlemap_VkPerformanceValueDataINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceValueDataINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkPerformanceValueINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceValueINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkPerformanceValueDataINTEL(handlemap, (VkPerformanceValueDataINTEL*)(&toMap->data));
+}
+
+void handlemap_VkInitializePerformanceApiInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkInitializePerformanceApiInfoINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceMarkerInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceMarkerInfoINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceStreamMarkerInfoINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceOverrideInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceOverrideInfoINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceConfigurationAcquireInfoINTEL* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void handlemap_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void handlemap_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanHandleMapping* handlemap,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void handlemap_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_metal_surface
+void handlemap_VkMetalSurfaceCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkMetalSurfaceCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void handlemap_VkImportColorBufferGOOGLE(
@@ -4770,23 +6854,1386 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void handlemap_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void handlemap_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderCoreProperties2AMD* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void handlemap_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void handlemap_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void handlemap_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void handlemap_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkMemoryPriorityAllocateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkMemoryPriorityAllocateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void handlemap_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void handlemap_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkBufferDeviceAddressCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_tooling_info
+void handlemap_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceToolPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+void handlemap_VkValidationFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkValidationFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void handlemap_VkCooperativeMatrixPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkCooperativeMatrixPropertiesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void handlemap_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCoverageReductionStateCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkFramebufferMixedSamplesCombinationNV(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferMixedSamplesCombinationNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void handlemap_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void handlemap_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void handlemap_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceFullScreenExclusiveInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_headless_surface
+void handlemap_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkHeadlessSurfaceCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void handlemap_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationLineStateCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void handlemap_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+void handlemap_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void handlemap_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void handlemap_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void handlemap_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGraphicsShaderGroupCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->stageCount; ++i)
+            {
+                handlemap_VkPipelineShaderStageCreateInfo(handlemap, (VkPipelineShaderStageCreateInfo*)(toMap->pStages + i));
+            }
+        }
+    }
+    if (toMap->pVertexInputState)
+    {
+        handlemap_VkPipelineVertexInputStateCreateInfo(handlemap, (VkPipelineVertexInputStateCreateInfo*)(toMap->pVertexInputState));
+    }
+    if (toMap->pTessellationState)
+    {
+        handlemap_VkPipelineTessellationStateCreateInfo(handlemap, (VkPipelineTessellationStateCreateInfo*)(toMap->pTessellationState));
+    }
+}
+
+void handlemap_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->groupCount; ++i)
+            {
+                handlemap_VkGraphicsShaderGroupCreateInfoNV(handlemap, (VkGraphicsShaderGroupCreateInfoNV*)(toMap->pGroups + i));
+            }
+        }
+    }
+    if (toMap->pPipelines)
+    {
+        handlemap->mapHandles_VkPipeline((VkPipeline*)toMap->pPipelines, toMap->pipelineCount);
+    }
+}
+
+void handlemap_VkBindShaderGroupIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkBindShaderGroupIndirectCommandNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkBindIndexBufferIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkBindIndexBufferIndirectCommandNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkBindVertexBufferIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkBindVertexBufferIndirectCommandNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkSetStateFlagsIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkSetStateFlagsIndirectCommandNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkIndirectCommandsStreamNV(
+    VulkanHandleMapping* handlemap,
+    VkIndirectCommandsStreamNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
+}
+
+void handlemap_VkIndirectCommandsLayoutTokenNV(
+    VulkanHandleMapping* handlemap,
+    VkIndirectCommandsLayoutTokenNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkPipelineLayout((VkPipelineLayout*)&toMap->pushconstantPipelineLayout);
+}
+
+void handlemap_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkIndirectCommandsLayoutCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pTokens)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->tokenCount; ++i)
+            {
+                handlemap_VkIndirectCommandsLayoutTokenNV(handlemap, (VkIndirectCommandsLayoutTokenNV*)(toMap->pTokens + i));
+            }
+        }
+    }
+}
+
+void handlemap_VkGeneratedCommandsInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGeneratedCommandsInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->pipeline);
+    handlemap->mapHandles_VkIndirectCommandsLayoutNV((VkIndirectCommandsLayoutNV*)&toMap->indirectCommandsLayout);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pStreams)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->streamCount; ++i)
+            {
+                handlemap_VkIndirectCommandsStreamNV(handlemap, (VkIndirectCommandsStreamNV*)(toMap->pStreams + i));
+            }
+        }
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->preprocessBuffer);
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->sequencesCountBuffer);
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->sequencesIndexBuffer);
+}
+
+void handlemap_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->pipeline);
+    handlemap->mapHandles_VkIndirectCommandsLayoutNV((VkIndirectCommandsLayoutNV*)&toMap->indirectCommandsLayout);
+}
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void handlemap_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void handlemap_VkRenderPassTransformBeginInfoQCOM(
+    VulkanHandleMapping* handlemap,
+    VkRenderPassTransformBeginInfoQCOM* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkRect2D(handlemap, (VkRect2D*)(&toMap->renderArea));
+}
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void handlemap_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanHandleMapping* handlemap,
+    VkDeviceMemoryReportCallbackDataEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_robustness2
+void handlemap_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRobustness2FeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRobustness2PropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void handlemap_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSamplerCustomBorderColorCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkClearColorValue(handlemap, (VkClearColorValue*)(&toMap->customBorderColor));
+}
+
+void handlemap_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void handlemap_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePrivateDataFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDevicePrivateDataCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDevicePrivateDataCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPrivateDataSlotCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPrivateDataSlotCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void handlemap_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void handlemap_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkDeviceDiagnosticsConfigCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void handlemap_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void handlemap_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void handlemap_VkCopyCommandTransformInfoQCOM(
+    VulkanHandleMapping* handlemap,
+    VkCopyCommandTransformInfoQCOM* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_image_robustness
+void handlemap_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_4444_formats
+void handlemap_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevice4444FormatsFeaturesEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void handlemap_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDirectFBSurfaceCreateInfoEXT* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void handlemap_VkDeviceOrHostAddressKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceOrHostAddressKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkDeviceOrHostAddressConstKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceOrHostAddressConstKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureBuildRangeInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryTrianglesDataKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkDeviceOrHostAddressConstKHR(handlemap, (VkDeviceOrHostAddressConstKHR*)(&toMap->vertexData));
+    handlemap_VkDeviceOrHostAddressConstKHR(handlemap, (VkDeviceOrHostAddressConstKHR*)(&toMap->indexData));
+    handlemap_VkDeviceOrHostAddressConstKHR(handlemap, (VkDeviceOrHostAddressConstKHR*)(&toMap->transformData));
+}
+
+void handlemap_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryAabbsDataKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkDeviceOrHostAddressConstKHR(handlemap, (VkDeviceOrHostAddressConstKHR*)(&toMap->data));
+}
+
+void handlemap_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryInstancesDataKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkDeviceOrHostAddressConstKHR(handlemap, (VkDeviceOrHostAddressConstKHR*)(&toMap->data));
+}
+
+void handlemap_VkAccelerationStructureGeometryDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryDataKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    handlemap_VkAccelerationStructureGeometryTrianglesDataKHR(handlemap, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&toMap->triangles));
+    handlemap_VkAccelerationStructureGeometryAabbsDataKHR(handlemap, (VkAccelerationStructureGeometryAabbsDataKHR*)(&toMap->aabbs));
+    handlemap_VkAccelerationStructureGeometryInstancesDataKHR(handlemap, (VkAccelerationStructureGeometryInstancesDataKHR*)(&toMap->instances));
+}
+
+void handlemap_VkAccelerationStructureGeometryKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkAccelerationStructureGeometryDataKHR(handlemap, (VkAccelerationStructureGeometryDataKHR*)(&toMap->geometry));
+}
+
+void handlemap_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureBuildGeometryInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&toMap->srcAccelerationStructure);
+    handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&toMap->dstAccelerationStructure);
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pGeometries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->geometryCount; ++i)
+            {
+                handlemap_VkAccelerationStructureGeometryKHR(handlemap, (VkAccelerationStructureGeometryKHR*)(toMap->pGeometries + i));
+            }
+        }
+    }
+    handlemap_VkDeviceOrHostAddressKHR(handlemap, (VkDeviceOrHostAddressKHR*)(&toMap->scratchData));
+}
+
+void handlemap_VkAccelerationStructureCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkBuffer((VkBuffer*)&toMap->buffer);
+}
+
+void handlemap_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanHandleMapping* handlemap,
+    VkWriteDescriptorSetAccelerationStructureKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if (toMap->pAccelerationStructures)
+    {
+        handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)toMap->pAccelerationStructures, toMap->accelerationStructureCount);
+    }
+}
+
+void handlemap_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureDeviceAddressInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&toMap->accelerationStructure);
+}
+
+void handlemap_VkAccelerationStructureVersionInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureVersionInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyAccelerationStructureToMemoryInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&toMap->src);
+    handlemap_VkDeviceOrHostAddressKHR(handlemap, (VkDeviceOrHostAddressKHR*)(&toMap->dst));
+}
+
+void handlemap_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyMemoryToAccelerationStructureInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap_VkDeviceOrHostAddressConstKHR(handlemap, (VkDeviceOrHostAddressConstKHR*)(&toMap->src));
+    handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&toMap->dst);
+}
+
+void handlemap_VkCopyAccelerationStructureInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyAccelerationStructureInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&toMap->src);
+    handlemap->mapHandles_VkAccelerationStructureKHR((VkAccelerationStructureKHR*)&toMap->dst);
+}
+
+void handlemap_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureBuildSizesInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void handlemap_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingShaderGroupCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkRayTracingPipelineCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingPipelineCreateInfoKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->stageCount; ++i)
+            {
+                handlemap_VkPipelineShaderStageCreateInfo(handlemap, (VkPipelineShaderStageCreateInfo*)(toMap->pStages + i));
+            }
+        }
+    }
+    if ((toMap) != nullptr)
+    {
+        if (toMap->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toMap->groupCount; ++i)
+            {
+                handlemap_VkRayTracingShaderGroupCreateInfoKHR(handlemap, (VkRayTracingShaderGroupCreateInfoKHR*)(toMap->pGroups + i));
+            }
+        }
+    }
+    if (toMap->pLibraryInfo)
+    {
+        handlemap_VkPipelineLibraryCreateInfoKHR(handlemap, (VkPipelineLibraryCreateInfoKHR*)(toMap->pLibraryInfo));
+    }
+    if (toMap->pLibraryInterface)
+    {
+        handlemap_VkRayTracingPipelineInterfaceCreateInfoKHR(handlemap, (VkRayTracingPipelineInterfaceCreateInfoKHR*)(toMap->pLibraryInterface));
+    }
+    if (toMap->pDynamicState)
+    {
+        handlemap_VkPipelineDynamicStateCreateInfo(handlemap, (VkPipelineDynamicStateCreateInfo*)(toMap->pDynamicState));
+    }
+    handlemap->mapHandles_VkPipelineLayout((VkPipelineLayout*)&toMap->layout);
+    handlemap->mapHandles_VkPipeline((VkPipeline*)&toMap->basePipelineHandle);
+}
+
+void handlemap_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
+void handlemap_VkStridedDeviceAddressRegionKHR(
+    VulkanHandleMapping* handlemap,
+    VkStridedDeviceAddressRegionKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+void handlemap_VkTraceRaysIndirectCommandKHR(
+    VulkanHandleMapping* handlemap,
+    VkTraceRaysIndirectCommandKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+}
+
+#endif
+#ifdef VK_KHR_ray_query
+void handlemap_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayQueryFeaturesKHR* toMap)
+{
+    (void)handlemap;
+    (void)toMap;
+    if (toMap->pNext)
+    {
+        handlemap_extension_struct(handlemap, (void*)(toMap->pNext));
+    }
+}
+
 #endif
 void handlemap_extension_struct(
     VulkanHandleMapping* handlemap,
@@ -4900,9 +8347,9 @@
             handlemap_VkPhysicalDeviceMultiviewProperties(handlemap, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            handlemap_VkPhysicalDeviceVariablePointerFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
+            handlemap_VkPhysicalDeviceVariablePointersFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -4990,9 +8437,201 @@
             handlemap_VkPhysicalDeviceMaintenance3Properties(handlemap, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            handlemap_VkPhysicalDeviceShaderDrawParameterFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
+            handlemap_VkPhysicalDeviceShaderDrawParametersFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceVulkan11Features(handlemap, reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceVulkan11Properties(handlemap, reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceVulkan12Features(handlemap, reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceVulkan12Properties(handlemap, reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            handlemap_VkImageFormatListCreateInfo(handlemap, reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            handlemap_VkPhysicalDevice8BitStorageFeatures(handlemap, reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceDriverProperties(handlemap, reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceShaderAtomicInt64Features(handlemap, reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceShaderFloat16Int8Features(handlemap, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceFloatControlsProperties(handlemap, reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfo(handlemap, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceDescriptorIndexingFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceDescriptorIndexingProperties(handlemap, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfo(handlemap, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupport(handlemap, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            handlemap_VkSubpassDescriptionDepthStencilResolve(handlemap, reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceDepthStencilResolveProperties(handlemap, reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceScalarBlockLayoutFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            handlemap_VkImageStencilUsageCreateInfo(handlemap, reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            handlemap_VkSamplerReductionModeCreateInfo(handlemap, reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceSamplerFilterMinmaxProperties(handlemap, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceVulkanMemoryModelFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceImagelessFramebufferFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            handlemap_VkFramebufferAttachmentsCreateInfo(handlemap, reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            handlemap_VkRenderPassAttachmentBeginInfo(handlemap, reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            handlemap_VkAttachmentReferenceStencilLayout(handlemap, reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            handlemap_VkAttachmentDescriptionStencilLayout(handlemap, reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceHostQueryResetFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceTimelineSemaphoreFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            handlemap_VkPhysicalDeviceTimelineSemaphoreProperties(handlemap, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            handlemap_VkSemaphoreTypeCreateInfo(handlemap, reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            handlemap_VkTimelineSemaphoreSubmitInfo(handlemap, reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            handlemap_VkPhysicalDeviceBufferDeviceAddressFeatures(handlemap, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            handlemap_VkBufferOpaqueCaptureAddressCreateInfo(handlemap, reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            handlemap_VkMemoryOpaqueCaptureAddressAllocateInfo(handlemap, reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
             break;
         }
 #endif
@@ -5091,24 +8730,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            handlemap_VkImageFormatListCreateInfoKHR(handlemap, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
+            handlemap_VkPhysicalDevicePerformanceQueryFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            handlemap_VkPhysicalDevicePerformanceQueryPropertiesKHR(handlemap, reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            handlemap_VkQueryPoolPerformanceCreateInfoKHR(handlemap, reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            handlemap_VkPerformanceQuerySubmitInfoKHR(handlemap, reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            handlemap_VkPhysicalDevice8BitStorageFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
+            handlemap_VkPhysicalDevicePortabilitySubsetFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            handlemap_VkPhysicalDevicePortabilitySubsetPropertiesKHR(handlemap, reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            handlemap_VkPhysicalDeviceShaderFloat16Int8Features(handlemap, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            handlemap_VkPhysicalDeviceShaderClockFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            handlemap_VkFragmentShadingRateAttachmentInfoKHR(handlemap, reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            handlemap_VkPipelineFragmentShadingRateStateCreateInfoKHR(handlemap, reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            handlemap_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            handlemap_VkSurfaceProtectedCapabilitiesKHR(handlemap, reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension_out));
             break;
         }
 #endif
@@ -5150,6 +8852,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceTransformFeedbackFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceTransformFeedbackPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            handlemap_VkPipelineRasterizationStateStreamCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -5157,6 +8876,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceCornerSampledImageFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -5195,6 +8921,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            handlemap_VkImageViewASTCDecodeModeEXT(handlemap, reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceASTCDecodeFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -5266,6 +9011,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceDepthClipEnableFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            handlemap_VkPipelineRasterizationDepthClipStateCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -5295,15 +9052,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            handlemap_VkSamplerReductionModeCreateInfoEXT(handlemap, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
+            handlemap_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            handlemap_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
+            handlemap_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            handlemap_VkWriteDescriptorSetInlineUniformBlockEXT(handlemap, reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            handlemap_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(handlemap, reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -5360,6 +9127,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            handlemap_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(handlemap, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            handlemap_VkDrmFormatModifierPropertiesListEXT(handlemap, reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            handlemap_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(handlemap, reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            handlemap_VkImageDrmFormatModifierListCreateInfoEXT(handlemap, reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            handlemap_VkImageDrmFormatModifierExplicitCreateInfoEXT(handlemap, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -5367,30 +9168,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(handlemap, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
+            handlemap_VkPipelineViewportShadingRateImageStateCreateInfoNV(handlemap, reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            handlemap_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
+            handlemap_VkPhysicalDeviceShadingRateImageFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            handlemap_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
+            handlemap_VkPhysicalDeviceShadingRateImagePropertiesNV(handlemap, reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(handlemap, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
+            handlemap_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(handlemap, reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(handlemap, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
+            handlemap_VkWriteDescriptorSetAccelerationStructureNV(handlemap, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            handlemap_VkPhysicalDeviceRayTracingPropertiesNV(handlemap, reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            handlemap_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(handlemap, reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            handlemap_VkPhysicalDeviceImageViewImageFormatInfoEXT(handlemap, reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            handlemap_VkFilterCubicImageViewImageFormatPropertiesEXT(handlemap, reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -5413,6 +9245,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            handlemap_VkPipelineCompilerControlCreateInfoAMD(handlemap, reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -5420,6 +9259,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            handlemap_VkDeviceMemoryOverallocationCreateInfoAMD(handlemap, reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -5431,6 +9277,70 @@
             handlemap_VkPipelineVertexInputDivisorStateCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            handlemap_VkPresentFrameTokenGGP(handlemap, reinterpret_cast<VkPresentFrameTokenGGP*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            handlemap_VkPipelineCreationFeedbackCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceMeshShaderFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            handlemap_VkPhysicalDeviceMeshShaderPropertiesNV(handlemap, reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceShaderImageFootprintFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            handlemap_VkPipelineViewportExclusiveScissorStateCreateInfoNV(handlemap, reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceExclusiveScissorFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -5439,6 +9349,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            handlemap_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(handlemap, reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            handlemap_VkQueryPoolPerformanceQueryCreateInfoINTEL(handlemap, reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDevicePCIBusInfoPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            handlemap_VkDisplayNativeHdrSurfaceCapabilitiesAMD(handlemap, reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            handlemap_VkSwapchainDisplayNativeHdrCreateInfoAMD(handlemap, reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -5456,6 +9399,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            handlemap_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            handlemap_VkPhysicalDeviceShaderCoreProperties2AMD(handlemap, reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            handlemap_VkPhysicalDeviceCoherentMemoryFeaturesAMD(handlemap, reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceMemoryBudgetPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceMemoryPriorityFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            handlemap_VkMemoryPriorityAllocateInfoEXT(handlemap, reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            handlemap_VkBufferDeviceAddressCreateInfoEXT(handlemap, reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            handlemap_VkValidationFeaturesEXT(handlemap, reinterpret_cast<VkValidationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceCooperativeMatrixFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            handlemap_VkPhysicalDeviceCooperativeMatrixPropertiesNV(handlemap, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceCoverageReductionModeFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            handlemap_VkPipelineCoverageReductionStateCreateInfoNV(handlemap, reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            handlemap_VkSurfaceFullScreenExclusiveInfoEXT(handlemap, reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            handlemap_VkSurfaceCapabilitiesFullScreenExclusiveEXT(handlemap, reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            handlemap_VkSurfaceFullScreenExclusiveWin32InfoEXT(handlemap, reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceLineRasterizationFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceLineRasterizationPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            handlemap_VkPipelineRasterizationLineStateCreateInfoEXT(handlemap, reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            handlemap_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(handlemap, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            handlemap_VkGraphicsPipelineShaderGroupsCreateInfoNV(handlemap, reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            handlemap_VkRenderPassTransformBeginInfoQCOM(handlemap, reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            handlemap_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(handlemap, reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            handlemap_VkDeviceDeviceMemoryReportCreateInfoEXT(handlemap, reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceRobustness2FeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceRobustness2PropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            handlemap_VkSamplerCustomBorderColorCreateInfoEXT(handlemap, reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceCustomBorderColorPropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceCustomBorderColorFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDevicePrivateDataFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            handlemap_VkDevicePrivateDataCreateInfoEXT(handlemap, reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            handlemap_VkDeviceDiagnosticsConfigCreateInfoNV(handlemap, reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            handlemap_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            handlemap_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            handlemap_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(handlemap, reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            handlemap_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            handlemap_VkCopyCommandTransformInfoQCOM(handlemap, reinterpret_cast<VkCopyCommandTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDeviceImageRobustnessFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            handlemap_VkPhysicalDevice4444FormatsFeaturesEXT(handlemap, reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            handlemap_VkWriteDescriptorSetAccelerationStructureKHR(handlemap, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceAccelerationStructureFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            handlemap_VkPhysicalDeviceAccelerationStructurePropertiesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            handlemap_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            handlemap_VkPhysicalDeviceRayQueryFeaturesKHR(handlemap, reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
         default:
         {
             return;
diff --git a/system/vulkan_enc/goldfish_vk_handlemap_guest.h b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
index 4b809f5..5362193 100644
--- a/system/vulkan_enc/goldfish_vk_handlemap_guest.h
+++ b/system/vulkan_enc/goldfish_vk_handlemap_guest.h
@@ -42,38 +42,102 @@
 namespace goldfish_vk {
 
 #ifdef VK_VERSION_1_0
-void handlemap_VkApplicationInfo(
+void handlemap_VkExtent2D(
     VulkanHandleMapping* handlemap,
-    VkApplicationInfo* toMap);
-
-void handlemap_VkInstanceCreateInfo(
-    VulkanHandleMapping* handlemap,
-    VkInstanceCreateInfo* toMap);
-
-void handlemap_VkAllocationCallbacks(
-    VulkanHandleMapping* handlemap,
-    VkAllocationCallbacks* toMap);
-
-void handlemap_VkPhysicalDeviceFeatures(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceFeatures* toMap);
-
-void handlemap_VkFormatProperties(
-    VulkanHandleMapping* handlemap,
-    VkFormatProperties* toMap);
+    VkExtent2D* toMap);
 
 void handlemap_VkExtent3D(
     VulkanHandleMapping* handlemap,
     VkExtent3D* toMap);
 
+void handlemap_VkOffset2D(
+    VulkanHandleMapping* handlemap,
+    VkOffset2D* toMap);
+
+void handlemap_VkOffset3D(
+    VulkanHandleMapping* handlemap,
+    VkOffset3D* toMap);
+
+void handlemap_VkRect2D(
+    VulkanHandleMapping* handlemap,
+    VkRect2D* toMap);
+
+void handlemap_VkBaseInStructure(
+    VulkanHandleMapping* handlemap,
+    VkBaseInStructure* toMap);
+
+void handlemap_VkBaseOutStructure(
+    VulkanHandleMapping* handlemap,
+    VkBaseOutStructure* toMap);
+
+void handlemap_VkBufferMemoryBarrier(
+    VulkanHandleMapping* handlemap,
+    VkBufferMemoryBarrier* toMap);
+
+void handlemap_VkDispatchIndirectCommand(
+    VulkanHandleMapping* handlemap,
+    VkDispatchIndirectCommand* toMap);
+
+void handlemap_VkDrawIndexedIndirectCommand(
+    VulkanHandleMapping* handlemap,
+    VkDrawIndexedIndirectCommand* toMap);
+
+void handlemap_VkDrawIndirectCommand(
+    VulkanHandleMapping* handlemap,
+    VkDrawIndirectCommand* toMap);
+
+void handlemap_VkImageSubresourceRange(
+    VulkanHandleMapping* handlemap,
+    VkImageSubresourceRange* toMap);
+
+void handlemap_VkImageMemoryBarrier(
+    VulkanHandleMapping* handlemap,
+    VkImageMemoryBarrier* toMap);
+
+void handlemap_VkMemoryBarrier(
+    VulkanHandleMapping* handlemap,
+    VkMemoryBarrier* toMap);
+
+void handlemap_VkAllocationCallbacks(
+    VulkanHandleMapping* handlemap,
+    VkAllocationCallbacks* toMap);
+
+void handlemap_VkApplicationInfo(
+    VulkanHandleMapping* handlemap,
+    VkApplicationInfo* toMap);
+
+void handlemap_VkFormatProperties(
+    VulkanHandleMapping* handlemap,
+    VkFormatProperties* toMap);
+
 void handlemap_VkImageFormatProperties(
     VulkanHandleMapping* handlemap,
     VkImageFormatProperties* toMap);
 
+void handlemap_VkInstanceCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkInstanceCreateInfo* toMap);
+
+void handlemap_VkMemoryHeap(
+    VulkanHandleMapping* handlemap,
+    VkMemoryHeap* toMap);
+
+void handlemap_VkMemoryType(
+    VulkanHandleMapping* handlemap,
+    VkMemoryType* toMap);
+
+void handlemap_VkPhysicalDeviceFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFeatures* toMap);
+
 void handlemap_VkPhysicalDeviceLimits(
     VulkanHandleMapping* handlemap,
     VkPhysicalDeviceLimits* toMap);
 
+void handlemap_VkPhysicalDeviceMemoryProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMemoryProperties* toMap);
+
 void handlemap_VkPhysicalDeviceSparseProperties(
     VulkanHandleMapping* handlemap,
     VkPhysicalDeviceSparseProperties* toMap);
@@ -86,18 +150,6 @@
     VulkanHandleMapping* handlemap,
     VkQueueFamilyProperties* toMap);
 
-void handlemap_VkMemoryType(
-    VulkanHandleMapping* handlemap,
-    VkMemoryType* toMap);
-
-void handlemap_VkMemoryHeap(
-    VulkanHandleMapping* handlemap,
-    VkMemoryHeap* toMap);
-
-void handlemap_VkPhysicalDeviceMemoryProperties(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceMemoryProperties* toMap);
-
 void handlemap_VkDeviceQueueCreateInfo(
     VulkanHandleMapping* handlemap,
     VkDeviceQueueCreateInfo* toMap);
@@ -118,26 +170,18 @@
     VulkanHandleMapping* handlemap,
     VkSubmitInfo* toMap);
 
-void handlemap_VkMemoryAllocateInfo(
-    VulkanHandleMapping* handlemap,
-    VkMemoryAllocateInfo* toMap);
-
 void handlemap_VkMappedMemoryRange(
     VulkanHandleMapping* handlemap,
     VkMappedMemoryRange* toMap);
 
+void handlemap_VkMemoryAllocateInfo(
+    VulkanHandleMapping* handlemap,
+    VkMemoryAllocateInfo* toMap);
+
 void handlemap_VkMemoryRequirements(
     VulkanHandleMapping* handlemap,
     VkMemoryRequirements* toMap);
 
-void handlemap_VkSparseImageFormatProperties(
-    VulkanHandleMapping* handlemap,
-    VkSparseImageFormatProperties* toMap);
-
-void handlemap_VkSparseImageMemoryRequirements(
-    VulkanHandleMapping* handlemap,
-    VkSparseImageMemoryRequirements* toMap);
-
 void handlemap_VkSparseMemoryBind(
     VulkanHandleMapping* handlemap,
     VkSparseMemoryBind* toMap);
@@ -154,10 +198,6 @@
     VulkanHandleMapping* handlemap,
     VkImageSubresource* toMap);
 
-void handlemap_VkOffset3D(
-    VulkanHandleMapping* handlemap,
-    VkOffset3D* toMap);
-
 void handlemap_VkSparseImageMemoryBind(
     VulkanHandleMapping* handlemap,
     VkSparseImageMemoryBind* toMap);
@@ -170,6 +210,14 @@
     VulkanHandleMapping* handlemap,
     VkBindSparseInfo* toMap);
 
+void handlemap_VkSparseImageFormatProperties(
+    VulkanHandleMapping* handlemap,
+    VkSparseImageFormatProperties* toMap);
+
+void handlemap_VkSparseImageMemoryRequirements(
+    VulkanHandleMapping* handlemap,
+    VkSparseImageMemoryRequirements* toMap);
+
 void handlemap_VkFenceCreateInfo(
     VulkanHandleMapping* handlemap,
     VkFenceCreateInfo* toMap);
@@ -206,10 +254,6 @@
     VulkanHandleMapping* handlemap,
     VkComponentMapping* toMap);
 
-void handlemap_VkImageSubresourceRange(
-    VulkanHandleMapping* handlemap,
-    VkImageSubresourceRange* toMap);
-
 void handlemap_VkImageViewCreateInfo(
     VulkanHandleMapping* handlemap,
     VkImageViewCreateInfo* toMap);
@@ -234,6 +278,10 @@
     VulkanHandleMapping* handlemap,
     VkPipelineShaderStageCreateInfo* toMap);
 
+void handlemap_VkComputePipelineCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkComputePipelineCreateInfo* toMap);
+
 void handlemap_VkVertexInputBindingDescription(
     VulkanHandleMapping* handlemap,
     VkVertexInputBindingDescription* toMap);
@@ -258,18 +306,6 @@
     VulkanHandleMapping* handlemap,
     VkViewport* toMap);
 
-void handlemap_VkOffset2D(
-    VulkanHandleMapping* handlemap,
-    VkOffset2D* toMap);
-
-void handlemap_VkExtent2D(
-    VulkanHandleMapping* handlemap,
-    VkExtent2D* toMap);
-
-void handlemap_VkRect2D(
-    VulkanHandleMapping* handlemap,
-    VkRect2D* toMap);
-
 void handlemap_VkPipelineViewportStateCreateInfo(
     VulkanHandleMapping* handlemap,
     VkPipelineViewportStateCreateInfo* toMap);
@@ -306,10 +342,6 @@
     VulkanHandleMapping* handlemap,
     VkGraphicsPipelineCreateInfo* toMap);
 
-void handlemap_VkComputePipelineCreateInfo(
-    VulkanHandleMapping* handlemap,
-    VkComputePipelineCreateInfo* toMap);
-
 void handlemap_VkPushConstantRange(
     VulkanHandleMapping* handlemap,
     VkPushConstantRange* toMap);
@@ -322,13 +354,17 @@
     VulkanHandleMapping* handlemap,
     VkSamplerCreateInfo* toMap);
 
-void handlemap_VkDescriptorSetLayoutBinding(
+void handlemap_VkCopyDescriptorSet(
     VulkanHandleMapping* handlemap,
-    VkDescriptorSetLayoutBinding* toMap);
+    VkCopyDescriptorSet* toMap);
 
-void handlemap_VkDescriptorSetLayoutCreateInfo(
+void handlemap_VkDescriptorBufferInfo(
     VulkanHandleMapping* handlemap,
-    VkDescriptorSetLayoutCreateInfo* toMap);
+    VkDescriptorBufferInfo* toMap);
+
+void handlemap_VkDescriptorImageInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorImageInfo* toMap);
 
 void handlemap_VkDescriptorPoolSize(
     VulkanHandleMapping* handlemap,
@@ -342,26 +378,18 @@
     VulkanHandleMapping* handlemap,
     VkDescriptorSetAllocateInfo* toMap);
 
-void handlemap_VkDescriptorImageInfo(
+void handlemap_VkDescriptorSetLayoutBinding(
     VulkanHandleMapping* handlemap,
-    VkDescriptorImageInfo* toMap);
+    VkDescriptorSetLayoutBinding* toMap);
 
-void handlemap_VkDescriptorBufferInfo(
+void handlemap_VkDescriptorSetLayoutCreateInfo(
     VulkanHandleMapping* handlemap,
-    VkDescriptorBufferInfo* toMap);
+    VkDescriptorSetLayoutCreateInfo* toMap);
 
 void handlemap_VkWriteDescriptorSet(
     VulkanHandleMapping* handlemap,
     VkWriteDescriptorSet* toMap);
 
-void handlemap_VkCopyDescriptorSet(
-    VulkanHandleMapping* handlemap,
-    VkCopyDescriptorSet* toMap);
-
-void handlemap_VkFramebufferCreateInfo(
-    VulkanHandleMapping* handlemap,
-    VkFramebufferCreateInfo* toMap);
-
 void handlemap_VkAttachmentDescription(
     VulkanHandleMapping* handlemap,
     VkAttachmentDescription* toMap);
@@ -370,6 +398,10 @@
     VulkanHandleMapping* handlemap,
     VkAttachmentReference* toMap);
 
+void handlemap_VkFramebufferCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferCreateInfo* toMap);
+
 void handlemap_VkSubpassDescription(
     VulkanHandleMapping* handlemap,
     VkSubpassDescription* toMap);
@@ -406,14 +438,6 @@
     VulkanHandleMapping* handlemap,
     VkImageSubresourceLayers* toMap);
 
-void handlemap_VkImageCopy(
-    VulkanHandleMapping* handlemap,
-    VkImageCopy* toMap);
-
-void handlemap_VkImageBlit(
-    VulkanHandleMapping* handlemap,
-    VkImageBlit* toMap);
-
 void handlemap_VkBufferImageCopy(
     VulkanHandleMapping* handlemap,
     VkBufferImageCopy* toMap);
@@ -438,46 +462,22 @@
     VulkanHandleMapping* handlemap,
     VkClearRect* toMap);
 
+void handlemap_VkImageBlit(
+    VulkanHandleMapping* handlemap,
+    VkImageBlit* toMap);
+
+void handlemap_VkImageCopy(
+    VulkanHandleMapping* handlemap,
+    VkImageCopy* toMap);
+
 void handlemap_VkImageResolve(
     VulkanHandleMapping* handlemap,
     VkImageResolve* toMap);
 
-void handlemap_VkMemoryBarrier(
-    VulkanHandleMapping* handlemap,
-    VkMemoryBarrier* toMap);
-
-void handlemap_VkBufferMemoryBarrier(
-    VulkanHandleMapping* handlemap,
-    VkBufferMemoryBarrier* toMap);
-
-void handlemap_VkImageMemoryBarrier(
-    VulkanHandleMapping* handlemap,
-    VkImageMemoryBarrier* toMap);
-
 void handlemap_VkRenderPassBeginInfo(
     VulkanHandleMapping* handlemap,
     VkRenderPassBeginInfo* toMap);
 
-void handlemap_VkDispatchIndirectCommand(
-    VulkanHandleMapping* handlemap,
-    VkDispatchIndirectCommand* toMap);
-
-void handlemap_VkDrawIndexedIndirectCommand(
-    VulkanHandleMapping* handlemap,
-    VkDrawIndexedIndirectCommand* toMap);
-
-void handlemap_VkDrawIndirectCommand(
-    VulkanHandleMapping* handlemap,
-    VkDrawIndirectCommand* toMap);
-
-void handlemap_VkBaseOutStructure(
-    VulkanHandleMapping* handlemap,
-    VkBaseOutStructure* toMap);
-
-void handlemap_VkBaseInStructure(
-    VulkanHandleMapping* handlemap,
-    VkBaseInStructure* toMap);
-
 #endif
 #ifdef VK_VERSION_1_1
 void handlemap_VkPhysicalDeviceSubgroupProperties(
@@ -628,9 +628,11 @@
     VulkanHandleMapping* handlemap,
     VkPhysicalDeviceMultiviewProperties* toMap);
 
-void handlemap_VkPhysicalDeviceVariablePointerFeatures(
+void handlemap_VkPhysicalDeviceVariablePointersFeatures(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceVariablePointerFeatures* toMap);
+    VkPhysicalDeviceVariablePointersFeatures* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceVariablePointersFeatures, handlemap_VkPhysicalDeviceVariablePointerFeatures);
 
 void handlemap_VkPhysicalDeviceProtectedMemoryFeatures(
     VulkanHandleMapping* handlemap,
@@ -748,9 +750,217 @@
     VulkanHandleMapping* handlemap,
     VkDescriptorSetLayoutSupport* toMap);
 
-void handlemap_VkPhysicalDeviceShaderDrawParameterFeatures(
+void handlemap_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceShaderDrawParameterFeatures* toMap);
+    VkPhysicalDeviceShaderDrawParametersFeatures* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceShaderDrawParametersFeatures, handlemap_VkPhysicalDeviceShaderDrawParameterFeatures);
+
+#endif
+#ifdef VK_VERSION_1_2
+void handlemap_VkPhysicalDeviceVulkan11Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan11Features* toMap);
+
+void handlemap_VkPhysicalDeviceVulkan11Properties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan11Properties* toMap);
+
+void handlemap_VkPhysicalDeviceVulkan12Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan12Features* toMap);
+
+void handlemap_VkConformanceVersion(
+    VulkanHandleMapping* handlemap,
+    VkConformanceVersion* toMap);
+
+void handlemap_VkPhysicalDeviceVulkan12Properties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkan12Properties* toMap);
+
+void handlemap_VkImageFormatListCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkImageFormatListCreateInfo* toMap);
+
+void handlemap_VkAttachmentDescription2(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentDescription2* toMap);
+
+void handlemap_VkAttachmentReference2(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentReference2* toMap);
+
+void handlemap_VkSubpassDescription2(
+    VulkanHandleMapping* handlemap,
+    VkSubpassDescription2* toMap);
+
+void handlemap_VkSubpassDependency2(
+    VulkanHandleMapping* handlemap,
+    VkSubpassDependency2* toMap);
+
+void handlemap_VkRenderPassCreateInfo2(
+    VulkanHandleMapping* handlemap,
+    VkRenderPassCreateInfo2* toMap);
+
+void handlemap_VkSubpassBeginInfo(
+    VulkanHandleMapping* handlemap,
+    VkSubpassBeginInfo* toMap);
+
+void handlemap_VkSubpassEndInfo(
+    VulkanHandleMapping* handlemap,
+    VkSubpassEndInfo* toMap);
+
+void handlemap_VkPhysicalDevice8BitStorageFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevice8BitStorageFeatures* toMap);
+
+void handlemap_VkPhysicalDeviceDriverProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDriverProperties* toMap);
+
+void handlemap_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderAtomicInt64Features* toMap);
+
+void handlemap_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderFloat16Int8Features* toMap);
+
+void handlemap_VkPhysicalDeviceFloatControlsProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFloatControlsProperties* toMap);
+
+void handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* toMap);
+
+void handlemap_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDescriptorIndexingFeatures* toMap);
+
+void handlemap_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDescriptorIndexingProperties* toMap);
+
+void handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* toMap);
+
+void handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* toMap);
+
+void handlemap_VkSubpassDescriptionDepthStencilResolve(
+    VulkanHandleMapping* handlemap,
+    VkSubpassDescriptionDepthStencilResolve* toMap);
+
+void handlemap_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDepthStencilResolveProperties* toMap);
+
+void handlemap_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* toMap);
+
+void handlemap_VkImageStencilUsageCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkImageStencilUsageCreateInfo* toMap);
+
+void handlemap_VkSamplerReductionModeCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkSamplerReductionModeCreateInfo* toMap);
+
+void handlemap_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* toMap);
+
+void handlemap_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* toMap);
+
+void handlemap_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImagelessFramebufferFeatures* toMap);
+
+void handlemap_VkFramebufferAttachmentImageInfo(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferAttachmentImageInfo* toMap);
+
+void handlemap_VkFramebufferAttachmentsCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferAttachmentsCreateInfo* toMap);
+
+void handlemap_VkRenderPassAttachmentBeginInfo(
+    VulkanHandleMapping* handlemap,
+    VkRenderPassAttachmentBeginInfo* toMap);
+
+void handlemap_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toMap);
+
+void handlemap_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toMap);
+
+void handlemap_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toMap);
+
+void handlemap_VkAttachmentReferenceStencilLayout(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentReferenceStencilLayout* toMap);
+
+void handlemap_VkAttachmentDescriptionStencilLayout(
+    VulkanHandleMapping* handlemap,
+    VkAttachmentDescriptionStencilLayout* toMap);
+
+void handlemap_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceHostQueryResetFeatures* toMap);
+
+void handlemap_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* toMap);
+
+void handlemap_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTimelineSemaphoreProperties* toMap);
+
+void handlemap_VkSemaphoreTypeCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreTypeCreateInfo* toMap);
+
+void handlemap_VkTimelineSemaphoreSubmitInfo(
+    VulkanHandleMapping* handlemap,
+    VkTimelineSemaphoreSubmitInfo* toMap);
+
+void handlemap_VkSemaphoreWaitInfo(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreWaitInfo* toMap);
+
+void handlemap_VkSemaphoreSignalInfo(
+    VulkanHandleMapping* handlemap,
+    VkSemaphoreSignalInfo* toMap);
+
+void handlemap_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* toMap);
+
+void handlemap_VkBufferDeviceAddressInfo(
+    VulkanHandleMapping* handlemap,
+    VkBufferDeviceAddressInfo* toMap);
+
+void handlemap_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanHandleMapping* handlemap,
+    VkBufferOpaqueCaptureAddressCreateInfo* toMap);
+
+void handlemap_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanHandleMapping* handlemap,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* toMap);
+
+void handlemap_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanHandleMapping* handlemap,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* toMap);
 
 #endif
 #ifdef VK_KHR_surface
@@ -798,22 +1008,18 @@
 
 #endif
 #ifdef VK_KHR_display
-void handlemap_VkDisplayPropertiesKHR(
-    VulkanHandleMapping* handlemap,
-    VkDisplayPropertiesKHR* toMap);
-
 void handlemap_VkDisplayModeParametersKHR(
     VulkanHandleMapping* handlemap,
     VkDisplayModeParametersKHR* toMap);
 
-void handlemap_VkDisplayModePropertiesKHR(
-    VulkanHandleMapping* handlemap,
-    VkDisplayModePropertiesKHR* toMap);
-
 void handlemap_VkDisplayModeCreateInfoKHR(
     VulkanHandleMapping* handlemap,
     VkDisplayModeCreateInfoKHR* toMap);
 
+void handlemap_VkDisplayModePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkDisplayModePropertiesKHR* toMap);
+
 void handlemap_VkDisplayPlaneCapabilitiesKHR(
     VulkanHandleMapping* handlemap,
     VkDisplayPlaneCapabilitiesKHR* toMap);
@@ -822,6 +1028,10 @@
     VulkanHandleMapping* handlemap,
     VkDisplayPlanePropertiesKHR* toMap);
 
+void handlemap_VkDisplayPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkDisplayPropertiesKHR* toMap);
+
 void handlemap_VkDisplaySurfaceCreateInfoKHR(
     VulkanHandleMapping* handlemap,
     VkDisplaySurfaceCreateInfoKHR* toMap);
@@ -851,12 +1061,6 @@
     VkWaylandSurfaceCreateInfoKHR* toMap);
 
 #endif
-#ifdef VK_KHR_mir_surface
-void handlemap_VkMirSurfaceCreateInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkMirSurfaceCreateInfoKHR* toMap);
-
-#endif
 #ifdef VK_KHR_android_surface
 void handlemap_VkAndroidSurfaceCreateInfoKHR(
     VulkanHandleMapping* handlemap,
@@ -872,20 +1076,80 @@
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
 #ifdef VK_KHR_multiview
+DEFINE_ALIAS_FUNCTION(handlemap_VkRenderPassMultiviewCreateInfo, handlemap_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceMultiviewFeatures, handlemap_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceMultiviewProperties, handlemap_VkPhysicalDeviceMultiviewPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceFeatures2, handlemap_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceProperties2, handlemap_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkFormatProperties2, handlemap_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkImageFormatProperties2, handlemap_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceImageFormatInfo2, handlemap_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkQueueFamilyProperties2, handlemap_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceMemoryProperties2, handlemap_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkSparseImageFormatProperties2, handlemap_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceSparseImageFormatInfo2, handlemap_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
 #endif
 #ifdef VK_KHR_device_group
+DEFINE_ALIAS_FUNCTION(handlemap_VkMemoryAllocateFlagsInfo, handlemap_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDeviceGroupRenderPassBeginInfo, handlemap_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDeviceGroupCommandBufferBeginInfo, handlemap_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDeviceGroupSubmitInfo, handlemap_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDeviceGroupBindSparseInfo, handlemap_VkDeviceGroupBindSparseInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkBindBufferMemoryDeviceGroupInfo, handlemap_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkBindImageMemoryDeviceGroupInfo, handlemap_VkBindImageMemoryDeviceGroupInfoKHR);
+
 #endif
 #ifdef VK_KHR_shader_draw_parameters
 #endif
 #ifdef VK_KHR_maintenance1
 #endif
 #ifdef VK_KHR_device_group_creation
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceGroupProperties, handlemap_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDeviceGroupDeviceCreateInfo, handlemap_VkDeviceGroupDeviceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_capabilities
+DEFINE_ALIAS_FUNCTION(handlemap_VkExternalMemoryProperties, handlemap_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceExternalImageFormatInfo, handlemap_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkExternalImageFormatProperties, handlemap_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceExternalBufferInfo, handlemap_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkExternalBufferProperties, handlemap_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceIDProperties, handlemap_VkPhysicalDeviceIDPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_memory
+DEFINE_ALIAS_FUNCTION(handlemap_VkExternalMemoryImageCreateInfo, handlemap_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkExternalMemoryBufferCreateInfo, handlemap_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkExportMemoryAllocateInfo, handlemap_VkExportMemoryAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_win32
 void handlemap_VkImportMemoryWin32HandleInfoKHR(
@@ -926,8 +1190,14 @@
 
 #endif
 #ifdef VK_KHR_external_semaphore_capabilities
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceExternalSemaphoreInfo, handlemap_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkExternalSemaphoreProperties, handlemap_VkExternalSemaphorePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore
+DEFINE_ALIAS_FUNCTION(handlemap_VkExportSemaphoreCreateInfo, handlemap_VkExportSemaphoreCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void handlemap_VkImportSemaphoreWin32HandleInfoKHR(
@@ -963,7 +1233,15 @@
     VkPhysicalDevicePushDescriptorPropertiesKHR* toMap);
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceShaderFloat16Int8Features, handlemap_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceShaderFloat16Int8Features, handlemap_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+#endif
 #ifdef VK_KHR_16bit_storage
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDevice16BitStorageFeatures, handlemap_VkPhysicalDevice16BitStorageFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_incremental_present
 void handlemap_VkRectLayerKHR(
@@ -980,35 +1258,35 @@
 
 #endif
 #ifdef VK_KHR_descriptor_update_template
+DEFINE_ALIAS_FUNCTION(handlemap_VkDescriptorUpdateTemplateEntry, handlemap_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDescriptorUpdateTemplateCreateInfo, handlemap_VkDescriptorUpdateTemplateCreateInfoKHR);
+
+#endif
+#ifdef VK_KHR_imageless_framebuffer
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceImagelessFramebufferFeatures, handlemap_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkFramebufferAttachmentsCreateInfo, handlemap_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkFramebufferAttachmentImageInfo, handlemap_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkRenderPassAttachmentBeginInfo, handlemap_VkRenderPassAttachmentBeginInfoKHR);
+
 #endif
 #ifdef VK_KHR_create_renderpass2
-void handlemap_VkAttachmentDescription2KHR(
-    VulkanHandleMapping* handlemap,
-    VkAttachmentDescription2KHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkRenderPassCreateInfo2, handlemap_VkRenderPassCreateInfo2KHR);
 
-void handlemap_VkAttachmentReference2KHR(
-    VulkanHandleMapping* handlemap,
-    VkAttachmentReference2KHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkAttachmentDescription2, handlemap_VkAttachmentDescription2KHR);
 
-void handlemap_VkSubpassDescription2KHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassDescription2KHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkAttachmentReference2, handlemap_VkAttachmentReference2KHR);
 
-void handlemap_VkSubpassDependency2KHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassDependency2KHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkSubpassDescription2, handlemap_VkSubpassDescription2KHR);
 
-void handlemap_VkRenderPassCreateInfo2KHR(
-    VulkanHandleMapping* handlemap,
-    VkRenderPassCreateInfo2KHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkSubpassDependency2, handlemap_VkSubpassDependency2KHR);
 
-void handlemap_VkSubpassBeginInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassBeginInfoKHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkSubpassBeginInfo, handlemap_VkSubpassBeginInfoKHR);
 
-void handlemap_VkSubpassEndInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkSubpassEndInfoKHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkSubpassEndInfo, handlemap_VkSubpassEndInfoKHR);
 
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -1018,8 +1296,14 @@
 
 #endif
 #ifdef VK_KHR_external_fence_capabilities
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceExternalFenceInfo, handlemap_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkExternalFenceProperties, handlemap_VkExternalFencePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_fence
+DEFINE_ALIAS_FUNCTION(handlemap_VkExportFenceCreateInfo, handlemap_VkExportFenceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_fence_win32
 void handlemap_VkImportFenceWin32HandleInfoKHR(
@@ -1045,7 +1329,51 @@
     VkFenceGetFdInfoKHR* toMap);
 
 #endif
+#ifdef VK_KHR_performance_query
+void handlemap_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* toMap);
+
+void handlemap_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* toMap);
+
+void handlemap_VkPerformanceCounterKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceCounterKHR* toMap);
+
+void handlemap_VkPerformanceCounterDescriptionKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceCounterDescriptionKHR* toMap);
+
+void handlemap_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkQueryPoolPerformanceCreateInfoKHR* toMap);
+
+void handlemap_VkPerformanceCounterResultKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceCounterResultKHR* toMap);
+
+void handlemap_VkAcquireProfilingLockInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAcquireProfilingLockInfoKHR* toMap);
+
+void handlemap_VkPerformanceQuerySubmitInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceQuerySubmitInfoKHR* toMap);
+
+#endif
 #ifdef VK_KHR_maintenance2
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDevicePointClippingProperties, handlemap_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkRenderPassInputAttachmentAspectCreateInfo, handlemap_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkInputAttachmentAspectReference, handlemap_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkImageViewUsageCreateInfo, handlemap_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPipelineTessellationDomainOriginStateCreateInfo, handlemap_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void handlemap_VkPhysicalDeviceSurfaceInfo2KHR(
@@ -1062,6 +1390,10 @@
 
 #endif
 #ifdef VK_KHR_variable_pointers
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceVariablePointersFeatures, handlemap_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceVariablePointersFeatures, handlemap_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_get_display_properties2
 void handlemap_VkDisplayProperties2KHR(
@@ -1086,37 +1418,267 @@
 
 #endif
 #ifdef VK_KHR_dedicated_allocation
+DEFINE_ALIAS_FUNCTION(handlemap_VkMemoryDedicatedRequirements, handlemap_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkMemoryDedicatedAllocateInfo, handlemap_VkMemoryDedicatedAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_storage_buffer_storage_class
 #endif
 #ifdef VK_KHR_relaxed_block_layout
 #endif
 #ifdef VK_KHR_get_memory_requirements2
+DEFINE_ALIAS_FUNCTION(handlemap_VkBufferMemoryRequirementsInfo2, handlemap_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkImageMemoryRequirementsInfo2, handlemap_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkImageSparseMemoryRequirementsInfo2, handlemap_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkMemoryRequirements2, handlemap_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkSparseImageMemoryRequirements2, handlemap_VkSparseImageMemoryRequirements2KHR);
+
 #endif
 #ifdef VK_KHR_image_format_list
-void handlemap_VkImageFormatListCreateInfoKHR(
-    VulkanHandleMapping* handlemap,
-    VkImageFormatListCreateInfoKHR* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkImageFormatListCreateInfo, handlemap_VkImageFormatListCreateInfoKHR);
 
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
+DEFINE_ALIAS_FUNCTION(handlemap_VkSamplerYcbcrConversionCreateInfo, handlemap_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkSamplerYcbcrConversionInfo, handlemap_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkBindImagePlaneMemoryInfo, handlemap_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkImagePlaneMemoryRequirementsInfo, handlemap_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceSamplerYcbcrConversionFeatures, handlemap_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkSamplerYcbcrConversionImageFormatProperties, handlemap_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_bind_memory2
+DEFINE_ALIAS_FUNCTION(handlemap_VkBindBufferMemoryInfo, handlemap_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkBindImageMemoryInfo, handlemap_VkBindImageMemoryInfoKHR);
+
+#endif
+#ifdef VK_KHR_portability_subset
+void handlemap_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* toMap);
+
+void handlemap_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* toMap);
+
 #endif
 #ifdef VK_KHR_maintenance3
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceMaintenance3Properties, handlemap_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDescriptorSetLayoutSupport, handlemap_VkDescriptorSetLayoutSupportKHR);
+
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
-#ifdef VK_KHR_8bit_storage
-void handlemap_VkPhysicalDevice8BitStorageFeaturesKHR(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDevice8BitStorageFeaturesKHR* toMap);
+#ifdef VK_KHR_shader_subgroup_extended_types
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, handlemap_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void handlemap_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_8bit_storage
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDevice8BitStorageFeatures, handlemap_VkPhysicalDevice8BitStorageFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceShaderAtomicInt64Features, handlemap_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_clock
+void handlemap_VkPhysicalDeviceShaderClockFeaturesKHR(
     VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceShaderFloat16Int8Features* toMap);
+    VkPhysicalDeviceShaderClockFeaturesKHR* toMap);
+
+#endif
+#ifdef VK_KHR_driver_properties
+DEFINE_ALIAS_FUNCTION(handlemap_VkConformanceVersion, handlemap_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceDriverProperties, handlemap_VkPhysicalDeviceDriverPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_shader_float_controls
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceFloatControlsProperties, handlemap_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+DEFINE_ALIAS_FUNCTION(handlemap_VkSubpassDescriptionDepthStencilResolve, handlemap_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceDepthStencilResolveProperties, handlemap_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceTimelineSemaphoreFeatures, handlemap_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceTimelineSemaphoreProperties, handlemap_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkSemaphoreTypeCreateInfo, handlemap_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkTimelineSemaphoreSubmitInfo, handlemap_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkSemaphoreWaitInfo, handlemap_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkSemaphoreSignalInfo, handlemap_VkSemaphoreSignalInfoKHR);
+
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceVulkanMemoryModelFeatures, handlemap_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void handlemap_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toMap);
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void handlemap_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkFragmentShadingRateAttachmentInfoKHR* toMap);
+
+void handlemap_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* toMap);
+
+void handlemap_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toMap);
+
+void handlemap_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toMap);
+
+void handlemap_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateKHR* toMap);
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void handlemap_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceProtectedCapabilitiesKHR* toMap);
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, handlemap_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkAttachmentReferenceStencilLayout, handlemap_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkAttachmentDescriptionStencilLayout, handlemap_VkAttachmentDescriptionStencilLayoutKHR);
+
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, handlemap_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_buffer_device_address
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceBufferDeviceAddressFeatures, handlemap_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkBufferDeviceAddressInfo, handlemap_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkBufferOpaqueCaptureAddressCreateInfo, handlemap_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkMemoryOpaqueCaptureAddressAllocateInfo, handlemap_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkDeviceMemoryOpaqueCaptureAddressInfo, handlemap_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void handlemap_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toMap);
+
+void handlemap_VkPipelineInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineInfoKHR* toMap);
+
+void handlemap_VkPipelineExecutablePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutablePropertiesKHR* toMap);
+
+void handlemap_VkPipelineExecutableInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableInfoKHR* toMap);
+
+void handlemap_VkPipelineExecutableStatisticValueKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableStatisticValueKHR* toMap);
+
+void handlemap_VkPipelineExecutableStatisticKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableStatisticKHR* toMap);
+
+void handlemap_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineExecutableInternalRepresentationKHR* toMap);
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void handlemap_VkPipelineLibraryCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkPipelineLibraryCreateInfoKHR* toMap);
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void handlemap_VkBufferCopy2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBufferCopy2KHR* toMap);
+
+void handlemap_VkCopyBufferInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyBufferInfo2KHR* toMap);
+
+void handlemap_VkImageCopy2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageCopy2KHR* toMap);
+
+void handlemap_VkCopyImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyImageInfo2KHR* toMap);
+
+void handlemap_VkBufferImageCopy2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBufferImageCopy2KHR* toMap);
+
+void handlemap_VkCopyBufferToImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyBufferToImageInfo2KHR* toMap);
+
+void handlemap_VkCopyImageToBufferInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyImageToBufferInfo2KHR* toMap);
+
+void handlemap_VkImageBlit2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageBlit2KHR* toMap);
+
+void handlemap_VkBlitImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkBlitImageInfo2KHR* toMap);
+
+void handlemap_VkImageResolve2KHR(
+    VulkanHandleMapping* handlemap,
+    VkImageResolve2KHR* toMap);
+
+void handlemap_VkResolveImageInfo2KHR(
+    VulkanHandleMapping* handlemap,
+    VkResolveImageInfo2KHR* toMap);
 
 #endif
 #ifdef VK_ANDROID_native_buffer
@@ -1177,6 +1739,30 @@
     VkDedicatedAllocationMemoryAllocateInfoNV* toMap);
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void handlemap_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* toMap);
+
+void handlemap_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void handlemap_VkImageViewHandleInfoNVX(
+    VulkanHandleMapping* handlemap,
+    VkImageViewHandleInfoNVX* toMap);
+
+void handlemap_VkImageViewAddressPropertiesNVX(
+    VulkanHandleMapping* handlemap,
+    VkImageViewAddressPropertiesNVX* toMap);
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -1203,6 +1789,18 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void handlemap_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanHandleMapping* handlemap,
+    VkStreamDescriptorSurfaceCreateInfoGGP* toMap);
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void handlemap_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* toMap);
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -1253,6 +1851,22 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void handlemap_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void handlemap_VkImageViewASTCDecodeModeEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageViewASTCDecodeModeEXT* toMap);
+
+void handlemap_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* toMap);
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void handlemap_VkConditionalRenderingBeginInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -1267,64 +1881,6 @@
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* toMap);
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void handlemap_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanHandleMapping* handlemap,
-    VkDeviceGeneratedCommandsFeaturesNVX* toMap);
-
-void handlemap_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanHandleMapping* handlemap,
-    VkDeviceGeneratedCommandsLimitsNVX* toMap);
-
-void handlemap_VkIndirectCommandsTokenNVX(
-    VulkanHandleMapping* handlemap,
-    VkIndirectCommandsTokenNVX* toMap);
-
-void handlemap_VkIndirectCommandsLayoutTokenNVX(
-    VulkanHandleMapping* handlemap,
-    VkIndirectCommandsLayoutTokenNVX* toMap);
-
-void handlemap_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkIndirectCommandsLayoutCreateInfoNVX* toMap);
-
-void handlemap_VkCmdProcessCommandsInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkCmdProcessCommandsInfoNVX* toMap);
-
-void handlemap_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkCmdReserveSpaceForCommandsInfoNVX* toMap);
-
-void handlemap_VkObjectTableCreateInfoNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableCreateInfoNVX* toMap);
-
-void handlemap_VkObjectTableEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableEntryNVX* toMap);
-
-void handlemap_VkObjectTablePipelineEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTablePipelineEntryNVX* toMap);
-
-void handlemap_VkObjectTableDescriptorSetEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableDescriptorSetEntryNVX* toMap);
-
-void handlemap_VkObjectTableVertexBufferEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableVertexBufferEntryNVX* toMap);
-
-void handlemap_VkObjectTableIndexBufferEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTableIndexBufferEntryNVX* toMap);
-
-void handlemap_VkObjectTablePushConstantEntryNVX(
-    VulkanHandleMapping* handlemap,
-    VkObjectTablePushConstantEntryNVX* toMap);
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void handlemap_VkViewportWScalingNV(
     VulkanHandleMapping* handlemap,
@@ -1423,6 +1979,16 @@
     VkPipelineRasterizationConservativeStateCreateInfoEXT* toMap);
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void handlemap_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* toMap);
+
+void handlemap_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* toMap);
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -1447,23 +2013,21 @@
     VkMacOSSurfaceCreateInfoMVK* toMap);
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void handlemap_VkDebugUtilsObjectNameInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkDebugUtilsObjectNameInfoEXT* toMap);
-
-void handlemap_VkDebugUtilsObjectTagInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkDebugUtilsObjectTagInfoEXT* toMap);
-
 void handlemap_VkDebugUtilsLabelEXT(
     VulkanHandleMapping* handlemap,
     VkDebugUtilsLabelEXT* toMap);
 
+void handlemap_VkDebugUtilsObjectNameInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDebugUtilsObjectNameInfoEXT* toMap);
+
 void handlemap_VkDebugUtilsMessengerCallbackDataEXT(
     VulkanHandleMapping* handlemap,
     VkDebugUtilsMessengerCallbackDataEXT* toMap);
@@ -1472,6 +2036,10 @@
     VulkanHandleMapping* handlemap,
     VkDebugUtilsMessengerCreateInfoEXT* toMap);
 
+void handlemap_VkDebugUtilsObjectTagInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDebugUtilsObjectTagInfoEXT* toMap);
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void handlemap_VkAndroidHardwareBufferUsageANDROID(
@@ -1500,13 +2068,9 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void handlemap_VkSamplerReductionModeCreateInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkSamplerReductionModeCreateInfoEXT* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkSamplerReductionModeCreateInfo, handlemap_VkSamplerReductionModeCreateInfoEXT);
 
-void handlemap_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceSamplerFilterMinmaxProperties, handlemap_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
 #endif
 #ifdef VK_AMD_gpu_shader_int16
@@ -1515,6 +2079,24 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void handlemap_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toMap);
+
+void handlemap_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanHandleMapping* handlemap,
+    VkWriteDescriptorSetInlineUniformBlockEXT* toMap);
+
+void handlemap_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toMap);
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -1579,8 +2161,44 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void handlemap_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toMap);
+
+void handlemap_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toMap);
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void handlemap_VkDrmFormatModifierPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierPropertiesEXT* toMap);
+
+void handlemap_VkDrmFormatModifierPropertiesListEXT(
+    VulkanHandleMapping* handlemap,
+    VkDrmFormatModifierPropertiesListEXT* toMap);
+
+void handlemap_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toMap);
+
+void handlemap_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageDrmFormatModifierListCreateInfoEXT* toMap);
+
+void handlemap_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* toMap);
+
+void handlemap_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkImageDrmFormatModifierPropertiesEXT* toMap);
+
+#endif
 #ifdef VK_EXT_validation_cache
 void handlemap_VkValidationCacheCreateInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -1592,29 +2210,139 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfo, handlemap_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void handlemap_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceDescriptorIndexingFeatures, handlemap_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void handlemap_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanHandleMapping* handlemap,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceDescriptorIndexingProperties, handlemap_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfo, handlemap_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanHandleMapping* handlemap,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toMap);
+DEFINE_ALIAS_FUNCTION(handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupport, handlemap_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+void handlemap_VkShadingRatePaletteNV(
+    VulkanHandleMapping* handlemap,
+    VkShadingRatePaletteNV* toMap);
+
+void handlemap_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* toMap);
+
+void handlemap_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* toMap);
+
+void handlemap_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShadingRateImagePropertiesNV* toMap);
+
+void handlemap_VkCoarseSampleLocationNV(
+    VulkanHandleMapping* handlemap,
+    VkCoarseSampleLocationNV* toMap);
+
+void handlemap_VkCoarseSampleOrderCustomNV(
+    VulkanHandleMapping* handlemap,
+    VkCoarseSampleOrderCustomNV* toMap);
+
+void handlemap_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toMap);
+
+#endif
+#ifdef VK_NV_ray_tracing
+void handlemap_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingShaderGroupCreateInfoNV* toMap);
+
+void handlemap_VkRayTracingPipelineCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingPipelineCreateInfoNV* toMap);
+
+void handlemap_VkGeometryTrianglesNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryTrianglesNV* toMap);
+
+void handlemap_VkGeometryAABBNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryAABBNV* toMap);
+
+void handlemap_VkGeometryDataNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryDataNV* toMap);
+
+void handlemap_VkGeometryNV(
+    VulkanHandleMapping* handlemap,
+    VkGeometryNV* toMap);
+
+void handlemap_VkAccelerationStructureInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureInfoNV* toMap);
+
+void handlemap_VkAccelerationStructureCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureCreateInfoNV* toMap);
+
+void handlemap_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkBindAccelerationStructureMemoryInfoNV* toMap);
+
+void handlemap_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanHandleMapping* handlemap,
+    VkWriteDescriptorSetAccelerationStructureNV* toMap);
+
+void handlemap_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureMemoryRequirementsInfoNV* toMap);
+
+void handlemap_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingPropertiesNV* toMap);
+
+void handlemap_VkTransformMatrixKHR(
+    VulkanHandleMapping* handlemap,
+    VkTransformMatrixKHR* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkTransformMatrixKHR, handlemap_VkTransformMatrixNV);
+
+void handlemap_VkAabbPositionsKHR(
+    VulkanHandleMapping* handlemap,
+    VkAabbPositionsKHR* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkAabbPositionsKHR, handlemap_VkAabbPositionsNV);
+
+void handlemap_VkAccelerationStructureInstanceKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureInstanceKHR* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkAccelerationStructureInstanceKHR, handlemap_VkAccelerationStructureInstanceNV);
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void handlemap_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toMap);
+
+void handlemap_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toMap);
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void handlemap_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* toMap);
+
+void handlemap_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* toMap);
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 void handlemap_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     VulkanHandleMapping* handlemap,
@@ -1637,12 +2365,30 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void handlemap_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCompilerControlCreateInfoAMD* toMap);
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void handlemap_VkCalibratedTimestampInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkCalibratedTimestampInfoEXT* toMap);
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void handlemap_VkPhysicalDeviceShaderCorePropertiesAMD(
     VulkanHandleMapping* handlemap,
     VkPhysicalDeviceShaderCorePropertiesAMD* toMap);
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void handlemap_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkDeviceMemoryOverallocationCreateInfoAMD* toMap);
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void handlemap_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     VulkanHandleMapping* handlemap,
@@ -1656,9 +2402,71 @@
     VulkanHandleMapping* handlemap,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* toMap);
 
+void handlemap_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_GGP_frame_token
+void handlemap_VkPresentFrameTokenGGP(
+    VulkanHandleMapping* handlemap,
+    VkPresentFrameTokenGGP* toMap);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void handlemap_VkPipelineCreationFeedbackEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCreationFeedbackEXT* toMap);
+
+void handlemap_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCreationFeedbackCreateInfoEXT* toMap);
+
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void handlemap_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toMap);
+
+#endif
+#ifdef VK_NV_mesh_shader
+void handlemap_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMeshShaderFeaturesNV* toMap);
+
+void handlemap_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMeshShaderPropertiesNV* toMap);
+
+void handlemap_VkDrawMeshTasksIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkDrawMeshTasksIndirectCommandNV* toMap);
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void handlemap_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toMap);
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void handlemap_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* toMap);
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void handlemap_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* toMap);
+
+void handlemap_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* toMap);
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void handlemap_VkQueueFamilyCheckpointPropertiesNV(
     VulkanHandleMapping* handlemap,
@@ -1669,7 +2477,75 @@
     VkCheckpointDataNV* toMap);
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void handlemap_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toMap);
+
+#endif
+#ifdef VK_INTEL_performance_query
+void handlemap_VkPerformanceValueDataINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceValueDataINTEL* toMap);
+
+void handlemap_VkPerformanceValueINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceValueINTEL* toMap);
+
+void handlemap_VkInitializePerformanceApiInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkInitializePerformanceApiInfoINTEL* toMap);
+
+void handlemap_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkQueryPoolPerformanceQueryCreateInfoINTEL, handlemap_VkQueryPoolCreateInfoINTEL);
+
+void handlemap_VkPerformanceMarkerInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceMarkerInfoINTEL* toMap);
+
+void handlemap_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceStreamMarkerInfoINTEL* toMap);
+
+void handlemap_VkPerformanceOverrideInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceOverrideInfoINTEL* toMap);
+
+void handlemap_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanHandleMapping* handlemap,
+    VkPerformanceConfigurationAcquireInfoINTEL* toMap);
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void handlemap_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* toMap);
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void handlemap_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanHandleMapping* handlemap,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* toMap);
+
+void handlemap_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanHandleMapping* handlemap,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* toMap);
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void handlemap_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanHandleMapping* handlemap,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* toMap);
+
+#endif
+#ifdef VK_EXT_metal_surface
+void handlemap_VkMetalSurfaceCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkMetalSurfaceCreateInfoEXT* toMap);
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void handlemap_VkImportColorBufferGOOGLE(
@@ -1685,23 +2561,509 @@
     VkImportPhysicalAddressGOOGLE* toMap);
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceScalarBlockLayoutFeatures, handlemap_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void handlemap_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toMap);
+
+void handlemap_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toMap);
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void handlemap_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderCoreProperties2AMD* toMap);
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void handlemap_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* toMap);
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void handlemap_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toMap);
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void handlemap_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* toMap);
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void handlemap_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* toMap);
+
+void handlemap_VkMemoryPriorityAllocateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkMemoryPriorityAllocateInfoEXT* toMap);
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void handlemap_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toMap);
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void handlemap_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toMap);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, handlemap_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(handlemap_VkBufferDeviceAddressInfo, handlemap_VkBufferDeviceAddressInfoEXT);
+
+void handlemap_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkBufferDeviceAddressCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_tooling_info
+void handlemap_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceToolPropertiesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+DEFINE_ALIAS_FUNCTION(handlemap_VkImageStencilUsageCreateInfo, handlemap_VkImageStencilUsageCreateInfoEXT);
+
+#endif
+#ifdef VK_EXT_validation_features
+void handlemap_VkValidationFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkValidationFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void handlemap_VkCooperativeMatrixPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkCooperativeMatrixPropertiesNV* toMap);
+
+void handlemap_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* toMap);
+
+void handlemap_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* toMap);
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void handlemap_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* toMap);
+
+void handlemap_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineCoverageReductionStateCreateInfoNV* toMap);
+
+void handlemap_VkFramebufferMixedSamplesCombinationNV(
+    VulkanHandleMapping* handlemap,
+    VkFramebufferMixedSamplesCombinationNV* toMap);
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void handlemap_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void handlemap_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void handlemap_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceFullScreenExclusiveInfoEXT* toMap);
+
+void handlemap_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* toMap);
+
+void handlemap_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_headless_surface
+void handlemap_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkHeadlessSurfaceCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void handlemap_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* toMap);
+
+void handlemap_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPipelineRasterizationLineStateCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void handlemap_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_host_query_reset
+DEFINE_ALIAS_FUNCTION(handlemap_VkPhysicalDeviceHostQueryResetFeatures, handlemap_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+#endif
+#ifdef VK_EXT_index_type_uint8
+void handlemap_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void handlemap_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void handlemap_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void handlemap_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toMap);
+
+void handlemap_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toMap);
+
+void handlemap_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGraphicsShaderGroupCreateInfoNV* toMap);
+
+void handlemap_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* toMap);
+
+void handlemap_VkBindShaderGroupIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkBindShaderGroupIndirectCommandNV* toMap);
+
+void handlemap_VkBindIndexBufferIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkBindIndexBufferIndirectCommandNV* toMap);
+
+void handlemap_VkBindVertexBufferIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkBindVertexBufferIndirectCommandNV* toMap);
+
+void handlemap_VkSetStateFlagsIndirectCommandNV(
+    VulkanHandleMapping* handlemap,
+    VkSetStateFlagsIndirectCommandNV* toMap);
+
+void handlemap_VkIndirectCommandsStreamNV(
+    VulkanHandleMapping* handlemap,
+    VkIndirectCommandsStreamNV* toMap);
+
+void handlemap_VkIndirectCommandsLayoutTokenNV(
+    VulkanHandleMapping* handlemap,
+    VkIndirectCommandsLayoutTokenNV* toMap);
+
+void handlemap_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkIndirectCommandsLayoutCreateInfoNV* toMap);
+
+void handlemap_VkGeneratedCommandsInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGeneratedCommandsInfoNV* toMap);
+
+void handlemap_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* toMap);
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void handlemap_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toMap);
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void handlemap_VkRenderPassTransformBeginInfoQCOM(
+    VulkanHandleMapping* handlemap,
+    VkRenderPassTransformBeginInfoQCOM* toMap);
+
+void handlemap_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanHandleMapping* handlemap,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toMap);
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void handlemap_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toMap);
+
+void handlemap_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanHandleMapping* handlemap,
+    VkDeviceMemoryReportCallbackDataEXT* toMap);
+
+void handlemap_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_robustness2
+void handlemap_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRobustness2FeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRobustness2PropertiesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void handlemap_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkSamplerCustomBorderColorCreateInfoEXT* toMap);
+
+void handlemap_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void handlemap_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePrivateDataFeaturesEXT* toMap);
+
+void handlemap_VkDevicePrivateDataCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDevicePrivateDataCreateInfoEXT* toMap);
+
+void handlemap_VkPrivateDataSlotCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkPrivateDataSlotCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void handlemap_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void handlemap_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toMap);
+
+void handlemap_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkDeviceDiagnosticsConfigCreateInfoNV* toMap);
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void handlemap_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toMap);
+
+void handlemap_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toMap);
+
+void handlemap_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanHandleMapping* handlemap,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toMap);
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void handlemap_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toMap);
+
+void handlemap_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toMap);
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void handlemap_VkCopyCommandTransformInfoQCOM(
+    VulkanHandleMapping* handlemap,
+    VkCopyCommandTransformInfoQCOM* toMap);
+
+#endif
+#ifdef VK_EXT_image_robustness
+void handlemap_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_4444_formats
+void handlemap_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDevice4444FormatsFeaturesEXT* toMap);
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void handlemap_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanHandleMapping* handlemap,
+    VkDirectFBSurfaceCreateInfoEXT* toMap);
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void handlemap_VkDeviceOrHostAddressKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceOrHostAddressKHR* toMap);
+
+void handlemap_VkDeviceOrHostAddressConstKHR(
+    VulkanHandleMapping* handlemap,
+    VkDeviceOrHostAddressConstKHR* toMap);
+
+void handlemap_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureBuildRangeInfoKHR* toMap);
+
+void handlemap_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryTrianglesDataKHR* toMap);
+
+void handlemap_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryAabbsDataKHR* toMap);
+
+void handlemap_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryInstancesDataKHR* toMap);
+
+void handlemap_VkAccelerationStructureGeometryDataKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryDataKHR* toMap);
+
+void handlemap_VkAccelerationStructureGeometryKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureGeometryKHR* toMap);
+
+void handlemap_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureBuildGeometryInfoKHR* toMap);
+
+void handlemap_VkAccelerationStructureCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureCreateInfoKHR* toMap);
+
+void handlemap_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanHandleMapping* handlemap,
+    VkWriteDescriptorSetAccelerationStructureKHR* toMap);
+
+void handlemap_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* toMap);
+
+void handlemap_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* toMap);
+
+void handlemap_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureDeviceAddressInfoKHR* toMap);
+
+void handlemap_VkAccelerationStructureVersionInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureVersionInfoKHR* toMap);
+
+void handlemap_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyAccelerationStructureToMemoryInfoKHR* toMap);
+
+void handlemap_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyMemoryToAccelerationStructureInfoKHR* toMap);
+
+void handlemap_VkCopyAccelerationStructureInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkCopyAccelerationStructureInfoKHR* toMap);
+
+void handlemap_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkAccelerationStructureBuildSizesInfoKHR* toMap);
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void handlemap_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingShaderGroupCreateInfoKHR* toMap);
+
+void handlemap_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* toMap);
+
+void handlemap_VkRayTracingPipelineCreateInfoKHR(
+    VulkanHandleMapping* handlemap,
+    VkRayTracingPipelineCreateInfoKHR* toMap);
+
+void handlemap_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toMap);
+
+void handlemap_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toMap);
+
+void handlemap_VkStridedDeviceAddressRegionKHR(
+    VulkanHandleMapping* handlemap,
+    VkStridedDeviceAddressRegionKHR* toMap);
+
+void handlemap_VkTraceRaysIndirectCommandKHR(
+    VulkanHandleMapping* handlemap,
+    VkTraceRaysIndirectCommandKHR* toMap);
+
+#endif
+#ifdef VK_KHR_ray_query
+void handlemap_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanHandleMapping* handlemap,
+    VkPhysicalDeviceRayQueryFeaturesKHR* toMap);
+
 #endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
index 68046a3..fcc6667 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.cpp
@@ -40,6 +40,339 @@
     void* structExtension_out);
 
 #ifdef VK_VERSION_1_0
+void marshal_VkExtent2D(
+    VulkanStreamGuest* vkStream,
+    const VkExtent2D* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+}
+
+void unmarshal_VkExtent2D(
+    VulkanStreamGuest* vkStream,
+    VkExtent2D* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
+}
+
+void marshal_VkExtent3D(
+    VulkanStreamGuest* vkStream,
+    const VkExtent3D* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
+}
+
+void unmarshal_VkExtent3D(
+    VulkanStreamGuest* vkStream,
+    VkExtent3D* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
+}
+
+void marshal_VkOffset2D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset2D* forMarshaling)
+{
+    vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
+    vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
+}
+
+void unmarshal_VkOffset2D(
+    VulkanStreamGuest* vkStream,
+    VkOffset2D* forUnmarshaling)
+{
+    vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
+    vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
+}
+
+void marshal_VkOffset3D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset3D* forMarshaling)
+{
+    vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
+    vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
+    vkStream->write((int32_t*)&forMarshaling->z, sizeof(int32_t));
+}
+
+void unmarshal_VkOffset3D(
+    VulkanStreamGuest* vkStream,
+    VkOffset3D* forUnmarshaling)
+{
+    vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
+    vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
+    vkStream->read((int32_t*)&forUnmarshaling->z, sizeof(int32_t));
+}
+
+void marshal_VkRect2D(
+    VulkanStreamGuest* vkStream,
+    const VkRect2D* forMarshaling)
+{
+    marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent));
+}
+
+void unmarshal_VkRect2D(
+    VulkanStreamGuest* vkStream,
+    VkRect2D* forUnmarshaling)
+{
+    unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->extent));
+}
+
+void marshal_VkBaseInStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseInStructure* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+}
+
+void unmarshal_VkBaseInStructure(
+    VulkanStreamGuest* vkStream,
+    VkBaseInStructure* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+}
+
+void marshal_VkBaseOutStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseOutStructure* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+}
+
+void unmarshal_VkBaseOutStructure(
+    VulkanStreamGuest* vkStream,
+    VkBaseOutStructure* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+}
+
+void marshal_VkBufferMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkBufferMemoryBarrier* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkBufferMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    VkBufferMemoryBarrier* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+}
+
+void marshal_VkDispatchIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDispatchIndirectCommand* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->x, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->y, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->z, sizeof(uint32_t));
+}
+
+void unmarshal_VkDispatchIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    VkDispatchIndirectCommand* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->x, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->y, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->z, sizeof(uint32_t));
+}
+
+void marshal_VkDrawIndexedIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndexedIndirectCommand* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
+    vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
+    vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
+}
+
+void unmarshal_VkDrawIndexedIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    VkDrawIndexedIndirectCommand* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
+    vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
+}
+
+void marshal_VkDrawIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndirectCommand* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
+}
+
+void unmarshal_VkDrawIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    VkDrawIndirectCommand* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
+}
+
+void marshal_VkImageSubresourceRange(
+    VulkanStreamGuest* vkStream,
+    const VkImageSubresourceRange* forMarshaling)
+{
+    vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
+    vkStream->write((uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkImageSubresourceRange(
+    VulkanStreamGuest* vkStream,
+    VkImageSubresourceRange* forUnmarshaling)
+{
+    vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->baseMipLevel, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->levelCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
+}
+
+void marshal_VkImageMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkImageMemoryBarrier* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
+    vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
+    vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    marshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
+}
+
+void unmarshal_VkImageMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    VkImageMemoryBarrier* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
+    vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
+    unmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
+}
+
+void marshal_VkMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryBarrier* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+}
+
+void unmarshal_VkMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    VkMemoryBarrier* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
+}
+
+void marshal_VkAllocationCallbacks(
+    VulkanStreamGuest* vkStream,
+    const VkAllocationCallbacks* forMarshaling)
+{
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pUserData)
+    {
+        vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
+    }
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->pfnAllocation;
+    vkStream->putBe64(cgen_var_1);
+    uint64_t cgen_var_2 = (uint64_t)forMarshaling->pfnReallocation;
+    vkStream->putBe64(cgen_var_2);
+    uint64_t cgen_var_3 = (uint64_t)forMarshaling->pfnFree;
+    vkStream->putBe64(cgen_var_3);
+    uint64_t cgen_var_4 = (uint64_t)forMarshaling->pfnInternalAllocation;
+    vkStream->putBe64(cgen_var_4);
+    uint64_t cgen_var_5 = (uint64_t)forMarshaling->pfnInternalFree;
+    vkStream->putBe64(cgen_var_5);
+}
+
+void unmarshal_VkAllocationCallbacks(
+    VulkanStreamGuest* vkStream,
+    VkAllocationCallbacks* forUnmarshaling)
+{
+    // WARNING PTR CHECK
+    void* check_pUserData;
+    check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pUserData)
+    {
+        if (!(check_pUserData))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
+        }
+        vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
+    }
+    forUnmarshaling->pfnAllocation = (PFN_vkAllocationFunction)vkStream->getBe64();
+    forUnmarshaling->pfnReallocation = (PFN_vkReallocationFunction)vkStream->getBe64();
+    forUnmarshaling->pfnFree = (PFN_vkFreeFunction)vkStream->getBe64();
+    forUnmarshaling->pfnInternalAllocation = (PFN_vkInternalAllocationNotification)vkStream->getBe64();
+    forUnmarshaling->pfnInternalFree = (PFN_vkInternalFreeNotification)vkStream->getBe64();
+}
+
 void marshal_VkApplicationInfo(
     VulkanStreamGuest* vkStream,
     const VkApplicationInfo* forMarshaling)
@@ -64,8 +397,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
-        vkStream->putBe64(cgen_var_1);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
+        vkStream->putBe64(cgen_var_0);
         if (forMarshaling->pEngineName)
         {
             vkStream->putString(forMarshaling->pEngineName);
@@ -126,6 +459,46 @@
     vkStream->read((uint32_t*)&forUnmarshaling->apiVersion, sizeof(uint32_t));
 }
 
+void marshal_VkFormatProperties(
+    VulkanStreamGuest* vkStream,
+    const VkFormatProperties* forMarshaling)
+{
+    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
+    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
+    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
+}
+
+void unmarshal_VkFormatProperties(
+    VulkanStreamGuest* vkStream,
+    VkFormatProperties* forUnmarshaling)
+{
+    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
+    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
+    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
+}
+
+void marshal_VkImageFormatProperties(
+    VulkanStreamGuest* vkStream,
+    const VkImageFormatProperties* forMarshaling)
+{
+    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->maxExtent));
+    vkStream->write((uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
+    vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
+    vkStream->write((VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkImageFormatProperties(
+    VulkanStreamGuest* vkStream,
+    VkImageFormatProperties* forUnmarshaling)
+{
+    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->maxExtent));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMipLevels, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxArrayLayers, sizeof(uint32_t));
+    vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->maxResourceSize, sizeof(VkDeviceSize));
+}
+
 void marshal_VkInstanceCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkInstanceCreateInfo* forMarshaling)
@@ -134,8 +507,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkInstanceCreateFlags*)&forMarshaling->flags, sizeof(VkInstanceCreateFlags));
     // WARNING PTR CHECK
-    uint64_t cgen_var_4 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
-    vkStream->putBe64(cgen_var_4);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pApplicationInfo)
     {
         marshal_VkApplicationInfo(vkStream, (const VkApplicationInfo*)(forMarshaling->pApplicationInfo));
@@ -170,49 +543,36 @@
     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledExtensionNames);
 }
 
-void marshal_VkAllocationCallbacks(
+void marshal_VkMemoryHeap(
     VulkanStreamGuest* vkStream,
-    const VkAllocationCallbacks* forMarshaling)
+    const VkMemoryHeap* forMarshaling)
 {
-    // WARNING PTR CHECK
-    uint64_t cgen_var_6 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    vkStream->putBe64(cgen_var_6);
-    if (forMarshaling->pUserData)
-    {
-        vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
-    }
-    uint64_t cgen_var_7 = (uint64_t)forMarshaling->pfnAllocation;
-    vkStream->putBe64(cgen_var_7);
-    uint64_t cgen_var_8 = (uint64_t)forMarshaling->pfnReallocation;
-    vkStream->putBe64(cgen_var_8);
-    uint64_t cgen_var_9 = (uint64_t)forMarshaling->pfnFree;
-    vkStream->putBe64(cgen_var_9);
-    uint64_t cgen_var_10 = (uint64_t)forMarshaling->pfnInternalAllocation;
-    vkStream->putBe64(cgen_var_10);
-    uint64_t cgen_var_11 = (uint64_t)forMarshaling->pfnInternalFree;
-    vkStream->putBe64(cgen_var_11);
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    vkStream->write((VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
 }
 
-void unmarshal_VkAllocationCallbacks(
+void unmarshal_VkMemoryHeap(
     VulkanStreamGuest* vkStream,
-    VkAllocationCallbacks* forUnmarshaling)
+    VkMemoryHeap* forUnmarshaling)
 {
-    // WARNING PTR CHECK
-    void* check_pUserData;
-    check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->pUserData)
-    {
-        if (!(check_pUserData))
-        {
-            fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
-        }
-        vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
-    }
-    forUnmarshaling->pfnAllocation = (PFN_vkAllocationFunction)vkStream->getBe64();
-    forUnmarshaling->pfnReallocation = (PFN_vkReallocationFunction)vkStream->getBe64();
-    forUnmarshaling->pfnFree = (PFN_vkFreeFunction)vkStream->getBe64();
-    forUnmarshaling->pfnInternalAllocation = (PFN_vkInternalAllocationNotification)vkStream->getBe64();
-    forUnmarshaling->pfnInternalFree = (PFN_vkInternalFreeNotification)vkStream->getBe64();
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+    vkStream->read((VkMemoryHeapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryHeapFlags));
+}
+
+void marshal_VkMemoryType(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryType* forMarshaling)
+{
+    vkStream->write((VkMemoryPropertyFlags*)&forMarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
+    vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
+}
+
+void unmarshal_VkMemoryType(
+    VulkanStreamGuest* vkStream,
+    VkMemoryType* forUnmarshaling)
+{
+    vkStream->read((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
 }
 
 void marshal_VkPhysicalDeviceFeatures(
@@ -337,64 +697,6 @@
     vkStream->read((VkBool32*)&forUnmarshaling->inheritedQueries, sizeof(VkBool32));
 }
 
-void marshal_VkFormatProperties(
-    VulkanStreamGuest* vkStream,
-    const VkFormatProperties* forMarshaling)
-{
-    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
-    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
-    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
-}
-
-void unmarshal_VkFormatProperties(
-    VulkanStreamGuest* vkStream,
-    VkFormatProperties* forUnmarshaling)
-{
-    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
-    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
-    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
-}
-
-void marshal_VkExtent3D(
-    VulkanStreamGuest* vkStream,
-    const VkExtent3D* forMarshaling)
-{
-    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
-}
-
-void unmarshal_VkExtent3D(
-    VulkanStreamGuest* vkStream,
-    VkExtent3D* forUnmarshaling)
-{
-    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
-}
-
-void marshal_VkImageFormatProperties(
-    VulkanStreamGuest* vkStream,
-    const VkImageFormatProperties* forMarshaling)
-{
-    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->maxExtent));
-    vkStream->write((uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
-    vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
-    vkStream->write((VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
-}
-
-void unmarshal_VkImageFormatProperties(
-    VulkanStreamGuest* vkStream,
-    VkImageFormatProperties* forUnmarshaling)
-{
-    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->maxExtent));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxMipLevels, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxArrayLayers, sizeof(uint32_t));
-    vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->maxResourceSize, sizeof(VkDeviceSize));
-}
-
 void marshal_VkPhysicalDeviceLimits(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceLimits* forMarshaling)
@@ -465,8 +767,8 @@
     vkStream->write((uint32_t*)forMarshaling->maxViewportDimensions, 2 * sizeof(uint32_t));
     vkStream->write((float*)forMarshaling->viewportBoundsRange, 2 * sizeof(float));
     vkStream->write((uint32_t*)&forMarshaling->viewportSubPixelBits, sizeof(uint32_t));
-    uint64_t cgen_var_18 = (uint64_t)forMarshaling->minMemoryMapAlignment;
-    vkStream->putBe64(cgen_var_18);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->minMemoryMapAlignment;
+    vkStream->putBe64(cgen_var_0);
     vkStream->write((VkDeviceSize*)&forMarshaling->minTexelBufferOffsetAlignment, sizeof(VkDeviceSize));
     vkStream->write((VkDeviceSize*)&forMarshaling->minUniformBufferOffsetAlignment, sizeof(VkDeviceSize));
     vkStream->write((VkDeviceSize*)&forMarshaling->minStorageBufferOffsetAlignment, sizeof(VkDeviceSize));
@@ -620,6 +922,38 @@
     vkStream->read((VkDeviceSize*)&forUnmarshaling->nonCoherentAtomSize, sizeof(VkDeviceSize));
 }
 
+void marshal_VkPhysicalDeviceMemoryProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryProperties* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        marshal_VkMemoryType(vkStream, (VkMemoryType*)(forMarshaling->memoryTypes + i));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        marshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i));
+    }
+}
+
+void unmarshal_VkPhysicalDeviceMemoryProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMemoryProperties* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeCount, sizeof(uint32_t));
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        unmarshal_VkMemoryType(vkStream, (VkMemoryType*)(forUnmarshaling->memoryTypes + i));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->memoryHeapCount, sizeof(uint32_t));
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        unmarshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forUnmarshaling->memoryHeaps + i));
+    }
+}
+
 void marshal_VkPhysicalDeviceSparseProperties(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseProperties* forMarshaling)
@@ -692,70 +1026,6 @@
     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->minImageTransferGranularity));
 }
 
-void marshal_VkMemoryType(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryType* forMarshaling)
-{
-    vkStream->write((VkMemoryPropertyFlags*)&forMarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
-    vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
-}
-
-void unmarshal_VkMemoryType(
-    VulkanStreamGuest* vkStream,
-    VkMemoryType* forUnmarshaling)
-{
-    vkStream->read((VkMemoryPropertyFlags*)&forUnmarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
-    vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
-}
-
-void marshal_VkMemoryHeap(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryHeap* forMarshaling)
-{
-    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-    vkStream->write((VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
-}
-
-void unmarshal_VkMemoryHeap(
-    VulkanStreamGuest* vkStream,
-    VkMemoryHeap* forUnmarshaling)
-{
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
-    vkStream->read((VkMemoryHeapFlags*)&forUnmarshaling->flags, sizeof(VkMemoryHeapFlags));
-}
-
-void marshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceMemoryProperties* forMarshaling)
-{
-    vkStream->write((uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        marshal_VkMemoryType(vkStream, (VkMemoryType*)(forMarshaling->memoryTypes + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        marshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i));
-    }
-}
-
-void unmarshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceMemoryProperties* forUnmarshaling)
-{
-    vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        unmarshal_VkMemoryType(vkStream, (VkMemoryType*)(forUnmarshaling->memoryTypes + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->memoryHeapCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        unmarshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forUnmarshaling->memoryHeaps + i));
-    }
-}
-
 void marshal_VkDeviceQueueCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkDeviceQueueCreateInfo* forMarshaling)
@@ -788,17 +1058,20 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkDeviceCreateFlags*)&forMarshaling->flags, sizeof(VkDeviceCreateFlags));
     vkStream->write((uint32_t*)&forMarshaling->queueCreateInfoCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueCreateInfoCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkDeviceQueueCreateInfo(vkStream, (const VkDeviceQueueCreateInfo*)(forMarshaling->pQueueCreateInfos + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueCreateInfoCount; ++i)
+        {
+            marshal_VkDeviceQueueCreateInfo(vkStream, (const VkDeviceQueueCreateInfo*)(forMarshaling->pQueueCreateInfos + i));
+        }
     }
     vkStream->write((uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
     saveStringArray(vkStream, forMarshaling->ppEnabledLayerNames, forMarshaling->enabledLayerCount);
     vkStream->write((uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
     saveStringArray(vkStream, forMarshaling->ppEnabledExtensionNames, forMarshaling->enabledExtensionCount);
     // WARNING PTR CHECK
-    uint64_t cgen_var_20 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
-    vkStream->putBe64(cgen_var_20);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pEnabledFeatures)
     {
         marshal_VkPhysicalDeviceFeatures(vkStream, (const VkPhysicalDeviceFeatures*)(forMarshaling->pEnabledFeatures));
@@ -813,9 +1086,12 @@
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkDeviceCreateFlags*)&forUnmarshaling->flags, sizeof(VkDeviceCreateFlags));
     vkStream->read((uint32_t*)&forUnmarshaling->queueCreateInfoCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueCreateInfoCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkDeviceQueueCreateInfo(vkStream, (VkDeviceQueueCreateInfo*)(forUnmarshaling->pQueueCreateInfos + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueCreateInfoCount; ++i)
+        {
+            unmarshal_VkDeviceQueueCreateInfo(vkStream, (VkDeviceQueueCreateInfo*)(forUnmarshaling->pQueueCreateInfos + i));
+        }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->enabledLayerCount, sizeof(uint32_t));
     vkStream->loadStringArrayInPlace((char***)&forUnmarshaling->ppEnabledLayerNames);
@@ -879,27 +1155,27 @@
     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
     if (forMarshaling->waitSemaphoreCount)
     {
-        uint64_t* cgen_var_22;
-        vkStream->alloc((void**)&cgen_var_22, forMarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_22, forMarshaling->waitSemaphoreCount);
-        vkStream->write((uint64_t*)cgen_var_22, forMarshaling->waitSemaphoreCount * 8);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
     }
     vkStream->write((const VkPipelineStageFlags*)forMarshaling->pWaitDstStageMask, forMarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
     if (forMarshaling->commandBufferCount)
     {
-        uint64_t* cgen_var_23;
-        vkStream->alloc((void**)&cgen_var_23, forMarshaling->commandBufferCount * 8);
-        vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(forMarshaling->pCommandBuffers, cgen_var_23, forMarshaling->commandBufferCount);
-        vkStream->write((uint64_t*)cgen_var_23, forMarshaling->commandBufferCount * 8);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forMarshaling->commandBufferCount * 8);
+        vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(forMarshaling->pCommandBuffers, cgen_var_1, forMarshaling->commandBufferCount);
+        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->commandBufferCount * 8);
     }
     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
     if (forMarshaling->signalSemaphoreCount)
     {
-        uint64_t* cgen_var_24;
-        vkStream->alloc((void**)&cgen_var_24, forMarshaling->signalSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_24, forMarshaling->signalSemaphoreCount);
-        vkStream->write((uint64_t*)cgen_var_24, forMarshaling->signalSemaphoreCount * 8);
+        uint64_t* cgen_var_2;
+        vkStream->alloc((void**)&cgen_var_2, forMarshaling->signalSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_2, forMarshaling->signalSemaphoreCount);
+        vkStream->write((uint64_t*)cgen_var_2, forMarshaling->signalSemaphoreCount * 8);
     }
 }
 
@@ -912,30 +1188,56 @@
     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
     if (forUnmarshaling->waitSemaphoreCount)
     {
-        uint64_t* cgen_var_25;
-        vkStream->alloc((void**)&cgen_var_25, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->read((uint64_t*)cgen_var_25, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_25, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
     }
     vkStream->read((VkPipelineStageFlags*)forUnmarshaling->pWaitDstStageMask, forUnmarshaling->waitSemaphoreCount * sizeof(const VkPipelineStageFlags));
     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
     if (forUnmarshaling->commandBufferCount)
     {
-        uint64_t* cgen_var_26;
-        vkStream->alloc((void**)&cgen_var_26, forUnmarshaling->commandBufferCount * 8);
-        vkStream->read((uint64_t*)cgen_var_26, forUnmarshaling->commandBufferCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_26, (VkCommandBuffer*)forUnmarshaling->pCommandBuffers, forUnmarshaling->commandBufferCount);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->commandBufferCount * 8);
+        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->commandBufferCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(cgen_var_1, (VkCommandBuffer*)forUnmarshaling->pCommandBuffers, forUnmarshaling->commandBufferCount);
     }
     vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
     if (forUnmarshaling->signalSemaphoreCount)
     {
-        uint64_t* cgen_var_27;
-        vkStream->alloc((void**)&cgen_var_27, forUnmarshaling->signalSemaphoreCount * 8);
-        vkStream->read((uint64_t*)cgen_var_27, forUnmarshaling->signalSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_27, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
+        uint64_t* cgen_var_2;
+        vkStream->alloc((void**)&cgen_var_2, forUnmarshaling->signalSemaphoreCount * 8);
+        vkStream->read((uint64_t*)cgen_var_2, forUnmarshaling->signalSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_2, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
     }
 }
 
+void marshal_VkMappedMemoryRange(
+    VulkanStreamGuest* vkStream,
+    const VkMappedMemoryRange* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkMappedMemoryRange(
+    VulkanStreamGuest* vkStream,
+    VkMappedMemoryRange* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+}
+
 void marshal_VkMemoryAllocateInfo(
     VulkanStreamGuest* vkStream,
     const VkMemoryAllocateInfo* forMarshaling)
@@ -956,32 +1258,6 @@
     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeIndex, sizeof(uint32_t));
 }
 
-void marshal_VkMappedMemoryRange(
-    VulkanStreamGuest* vkStream,
-    const VkMappedMemoryRange* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_28;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_28, 1);
-    vkStream->write((uint64_t*)&cgen_var_28, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-}
-
-void unmarshal_VkMappedMemoryRange(
-    VulkanStreamGuest* vkStream,
-    VkMappedMemoryRange* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_29;
-    vkStream->read((uint64_t*)&cgen_var_29, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_29, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
-}
-
 void marshal_VkMemoryRequirements(
     VulkanStreamGuest* vkStream,
     const VkMemoryRequirements* forMarshaling)
@@ -1000,6 +1276,276 @@
     vkStream->read((uint32_t*)&forUnmarshaling->memoryTypeBits, sizeof(uint32_t));
 }
 
+void marshal_VkSparseMemoryBind(
+    VulkanStreamGuest* vkStream,
+    const VkSparseMemoryBind* forMarshaling)
+{
+    vkStream->write((VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
+}
+
+void unmarshal_VkSparseMemoryBind(
+    VulkanStreamGuest* vkStream,
+    VkSparseMemoryBind* forUnmarshaling)
+{
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
+}
+
+void marshal_VkSparseBufferMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSparseBufferMemoryBindInfo* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
+        {
+            marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
+        }
+    }
+}
+
+void unmarshal_VkSparseBufferMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    VkSparseBufferMemoryBindInfo* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
+        {
+            unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
+        }
+    }
+}
+
+void marshal_VkSparseImageOpaqueMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageOpaqueMemoryBindInfo* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
+        {
+            marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
+        }
+    }
+}
+
+void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
+        {
+            unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
+        }
+    }
+}
+
+void marshal_VkImageSubresource(
+    VulkanStreamGuest* vkStream,
+    const VkImageSubresource* forMarshaling)
+{
+    vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
+    vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
+}
+
+void unmarshal_VkImageSubresource(
+    VulkanStreamGuest* vkStream,
+    VkImageSubresource* forUnmarshaling)
+{
+    vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->arrayLayer, sizeof(uint32_t));
+}
+
+void marshal_VkSparseImageMemoryBind(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageMemoryBind* forMarshaling)
+{
+    marshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forMarshaling->subresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->offset));
+    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
+}
+
+void unmarshal_VkSparseImageMemoryBind(
+    VulkanStreamGuest* vkStream,
+    VkSparseImageMemoryBind* forUnmarshaling)
+{
+    unmarshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forUnmarshaling->subresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->offset));
+    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
+}
+
+void marshal_VkSparseImageMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageMemoryBindInfo* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
+        {
+            marshal_VkSparseImageMemoryBind(vkStream, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i));
+        }
+    }
+}
+
+void unmarshal_VkSparseImageMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    VkSparseImageMemoryBindInfo* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
+        {
+            unmarshal_VkSparseImageMemoryBind(vkStream, (VkSparseImageMemoryBind*)(forUnmarshaling->pBinds + i));
+        }
+    }
+}
+
+void marshal_VkBindSparseInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBindSparseInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
+    if (forMarshaling->waitSemaphoreCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
+    }
+    vkStream->write((uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i)
+        {
+            marshal_VkSparseBufferMemoryBindInfo(vkStream, (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i)
+        {
+            marshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i)
+        {
+            marshal_VkSparseImageMemoryBindInfo(vkStream, (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
+    if (forMarshaling->signalSemaphoreCount)
+    {
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forMarshaling->signalSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_1, forMarshaling->signalSemaphoreCount);
+        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->signalSemaphoreCount * 8);
+    }
+}
+
+void unmarshal_VkBindSparseInfo(
+    VulkanStreamGuest* vkStream,
+    VkBindSparseInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
+    if (forUnmarshaling->waitSemaphoreCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->bufferBindCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferBindCount; ++i)
+        {
+            unmarshal_VkSparseBufferMemoryBindInfo(vkStream, (VkSparseBufferMemoryBindInfo*)(forUnmarshaling->pBufferBinds + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->imageOpaqueBindCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageOpaqueBindCount; ++i)
+        {
+            unmarshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (VkSparseImageOpaqueMemoryBindInfo*)(forUnmarshaling->pImageOpaqueBinds + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->imageBindCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageBindCount; ++i)
+        {
+            unmarshal_VkSparseImageMemoryBindInfo(vkStream, (VkSparseImageMemoryBindInfo*)(forUnmarshaling->pImageBinds + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
+    if (forUnmarshaling->signalSemaphoreCount)
+    {
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->signalSemaphoreCount * 8);
+        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->signalSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_1, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
+    }
+}
+
 void marshal_VkSparseImageFormatProperties(
     VulkanStreamGuest* vkStream,
     const VkSparseImageFormatProperties* forMarshaling)
@@ -1040,258 +1586,6 @@
     vkStream->read((VkDeviceSize*)&forUnmarshaling->imageMipTailStride, sizeof(VkDeviceSize));
 }
 
-void marshal_VkSparseMemoryBind(
-    VulkanStreamGuest* vkStream,
-    const VkSparseMemoryBind* forMarshaling)
-{
-    vkStream->write((VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
-    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-    uint64_t cgen_var_30;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_30, 1);
-    vkStream->write((uint64_t*)&cgen_var_30, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
-    vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
-}
-
-void unmarshal_VkSparseMemoryBind(
-    VulkanStreamGuest* vkStream,
-    VkSparseMemoryBind* forUnmarshaling)
-{
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->resourceOffset, sizeof(VkDeviceSize));
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
-    uint64_t cgen_var_31;
-    vkStream->read((uint64_t*)&cgen_var_31, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_31, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
-    vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
-}
-
-void marshal_VkSparseBufferMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    const VkSparseBufferMemoryBindInfo* forMarshaling)
-{
-    uint64_t cgen_var_32;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_32, 1);
-    vkStream->write((uint64_t*)&cgen_var_32, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
-    {
-        marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
-    }
-}
-
-void unmarshal_VkSparseBufferMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    VkSparseBufferMemoryBindInfo* forUnmarshaling)
-{
-    uint64_t cgen_var_33;
-    vkStream->read((uint64_t*)&cgen_var_33, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_33, (VkBuffer*)&forUnmarshaling->buffer, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
-    {
-        unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
-    }
-}
-
-void marshal_VkSparseImageOpaqueMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageOpaqueMemoryBindInfo* forMarshaling)
-{
-    uint64_t cgen_var_34;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_34, 1);
-    vkStream->write((uint64_t*)&cgen_var_34, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
-    {
-        marshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i));
-    }
-}
-
-void unmarshal_VkSparseImageOpaqueMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    VkSparseImageOpaqueMemoryBindInfo* forUnmarshaling)
-{
-    uint64_t cgen_var_35;
-    vkStream->read((uint64_t*)&cgen_var_35, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_35, (VkImage*)&forUnmarshaling->image, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
-    {
-        unmarshal_VkSparseMemoryBind(vkStream, (VkSparseMemoryBind*)(forUnmarshaling->pBinds + i));
-    }
-}
-
-void marshal_VkImageSubresource(
-    VulkanStreamGuest* vkStream,
-    const VkImageSubresource* forMarshaling)
-{
-    vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
-    vkStream->write((uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
-}
-
-void unmarshal_VkImageSubresource(
-    VulkanStreamGuest* vkStream,
-    VkImageSubresource* forUnmarshaling)
-{
-    vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
-    vkStream->read((uint32_t*)&forUnmarshaling->mipLevel, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->arrayLayer, sizeof(uint32_t));
-}
-
-void marshal_VkOffset3D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset3D* forMarshaling)
-{
-    vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
-    vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
-    vkStream->write((int32_t*)&forMarshaling->z, sizeof(int32_t));
-}
-
-void unmarshal_VkOffset3D(
-    VulkanStreamGuest* vkStream,
-    VkOffset3D* forUnmarshaling)
-{
-    vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
-    vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
-    vkStream->read((int32_t*)&forUnmarshaling->z, sizeof(int32_t));
-}
-
-void marshal_VkSparseImageMemoryBind(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageMemoryBind* forMarshaling)
-{
-    marshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forMarshaling->subresource));
-    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->offset));
-    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
-    uint64_t cgen_var_36;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_36, 1);
-    vkStream->write((uint64_t*)&cgen_var_36, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
-    vkStream->write((VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
-}
-
-void unmarshal_VkSparseImageMemoryBind(
-    VulkanStreamGuest* vkStream,
-    VkSparseImageMemoryBind* forUnmarshaling)
-{
-    unmarshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forUnmarshaling->subresource));
-    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->offset));
-    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
-    uint64_t cgen_var_37;
-    vkStream->read((uint64_t*)&cgen_var_37, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_37, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
-    vkStream->read((VkSparseMemoryBindFlags*)&forUnmarshaling->flags, sizeof(VkSparseMemoryBindFlags));
-}
-
-void marshal_VkSparseImageMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageMemoryBindInfo* forMarshaling)
-{
-    uint64_t cgen_var_38;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_38, 1);
-    vkStream->write((uint64_t*)&cgen_var_38, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
-    {
-        marshal_VkSparseImageMemoryBind(vkStream, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i));
-    }
-}
-
-void unmarshal_VkSparseImageMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    VkSparseImageMemoryBindInfo* forUnmarshaling)
-{
-    uint64_t cgen_var_39;
-    vkStream->read((uint64_t*)&cgen_var_39, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_39, (VkImage*)&forUnmarshaling->image, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->bindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindCount; ++i)
-    {
-        unmarshal_VkSparseImageMemoryBind(vkStream, (VkSparseImageMemoryBind*)(forUnmarshaling->pBinds + i));
-    }
-}
-
-void marshal_VkBindSparseInfo(
-    VulkanStreamGuest* vkStream,
-    const VkBindSparseInfo* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
-    if (forMarshaling->waitSemaphoreCount)
-    {
-        uint64_t* cgen_var_40;
-        vkStream->alloc((void**)&cgen_var_40, forMarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_40, forMarshaling->waitSemaphoreCount);
-        vkStream->write((uint64_t*)cgen_var_40, forMarshaling->waitSemaphoreCount * 8);
-    }
-    vkStream->write((uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i)
-    {
-        marshal_VkSparseBufferMemoryBindInfo(vkStream, (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i)
-    {
-        marshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i)
-    {
-        marshal_VkSparseImageMemoryBindInfo(vkStream, (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
-    if (forMarshaling->signalSemaphoreCount)
-    {
-        uint64_t* cgen_var_41;
-        vkStream->alloc((void**)&cgen_var_41, forMarshaling->signalSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSignalSemaphores, cgen_var_41, forMarshaling->signalSemaphoreCount);
-        vkStream->write((uint64_t*)cgen_var_41, forMarshaling->signalSemaphoreCount * 8);
-    }
-}
-
-void unmarshal_VkBindSparseInfo(
-    VulkanStreamGuest* vkStream,
-    VkBindSparseInfo* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
-    if (forUnmarshaling->waitSemaphoreCount)
-    {
-        uint64_t* cgen_var_42;
-        vkStream->alloc((void**)&cgen_var_42, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->read((uint64_t*)cgen_var_42, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_42, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->bufferBindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bufferBindCount; ++i)
-    {
-        unmarshal_VkSparseBufferMemoryBindInfo(vkStream, (VkSparseBufferMemoryBindInfo*)(forUnmarshaling->pBufferBinds + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->imageOpaqueBindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageOpaqueBindCount; ++i)
-    {
-        unmarshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (VkSparseImageOpaqueMemoryBindInfo*)(forUnmarshaling->pImageOpaqueBinds + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->imageBindCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->imageBindCount; ++i)
-    {
-        unmarshal_VkSparseImageMemoryBindInfo(vkStream, (VkSparseImageMemoryBindInfo*)(forUnmarshaling->pImageBinds + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreCount, sizeof(uint32_t));
-    if (forUnmarshaling->signalSemaphoreCount)
-    {
-        uint64_t* cgen_var_43;
-        vkStream->alloc((void**)&cgen_var_43, forUnmarshaling->signalSemaphoreCount * 8);
-        vkStream->read((uint64_t*)cgen_var_43, forUnmarshaling->signalSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_43, (VkSemaphore*)forUnmarshaling->pSignalSemaphores, forUnmarshaling->signalSemaphoreCount);
-    }
-}
-
 void marshal_VkFenceCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkFenceCreateInfo* forMarshaling)
@@ -1382,8 +1676,8 @@
     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_44 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    vkStream->putBe64(cgen_var_44);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pQueueFamilyIndices)
     {
         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
@@ -1421,9 +1715,9 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkBufferViewCreateFlags*)&forMarshaling->flags, sizeof(VkBufferViewCreateFlags));
-    uint64_t cgen_var_46;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_46, 1);
-    vkStream->write((uint64_t*)&cgen_var_46, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
     vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
@@ -1436,9 +1730,9 @@
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkBufferViewCreateFlags*)&forUnmarshaling->flags, sizeof(VkBufferViewCreateFlags));
-    uint64_t cgen_var_47;
-    vkStream->read((uint64_t*)&cgen_var_47, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_47, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
     vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
@@ -1462,8 +1756,8 @@
     vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_48 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    vkStream->putBe64(cgen_var_48);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pQueueFamilyIndices)
     {
         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
@@ -1544,28 +1838,6 @@
     vkStream->read((VkComponentSwizzle*)&forUnmarshaling->a, sizeof(VkComponentSwizzle));
 }
 
-void marshal_VkImageSubresourceRange(
-    VulkanStreamGuest* vkStream,
-    const VkImageSubresourceRange* forMarshaling)
-{
-    vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
-    vkStream->write((uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
-}
-
-void unmarshal_VkImageSubresourceRange(
-    VulkanStreamGuest* vkStream,
-    VkImageSubresourceRange* forUnmarshaling)
-{
-    vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
-    vkStream->read((uint32_t*)&forUnmarshaling->baseMipLevel, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->levelCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->baseArrayLayer, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
-}
-
 void marshal_VkImageViewCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkImageViewCreateInfo* forMarshaling)
@@ -1573,9 +1845,9 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkImageViewCreateFlags*)&forMarshaling->flags, sizeof(VkImageViewCreateFlags));
-    uint64_t cgen_var_50;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_50, 1);
-    vkStream->write((uint64_t*)&cgen_var_50, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkImageViewType*)&forMarshaling->viewType, sizeof(VkImageViewType));
     vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
     marshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forMarshaling->components));
@@ -1589,9 +1861,9 @@
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkImageViewCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageViewCreateFlags));
-    uint64_t cgen_var_51;
-    vkStream->read((uint64_t*)&cgen_var_51, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_51, (VkImage*)&forUnmarshaling->image, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
     vkStream->read((VkImageViewType*)&forUnmarshaling->viewType, sizeof(VkImageViewType));
     vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
     unmarshal_VkComponentMapping(vkStream, (VkComponentMapping*)(&forUnmarshaling->components));
@@ -1605,8 +1877,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkShaderModuleCreateFlags*)&forMarshaling->flags, sizeof(VkShaderModuleCreateFlags));
-    uint64_t cgen_var_52 = (uint64_t)forMarshaling->codeSize;
-    vkStream->putBe64(cgen_var_52);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->codeSize;
+    vkStream->putBe64(cgen_var_0);
     vkStream->write((const uint32_t*)forMarshaling->pCode, (forMarshaling->codeSize / 4) * sizeof(const uint32_t));
 }
 
@@ -1628,8 +1900,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkPipelineCacheCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCacheCreateFlags));
-    uint64_t cgen_var_54 = (uint64_t)forMarshaling->initialDataSize;
-    vkStream->putBe64(cgen_var_54);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
+    vkStream->putBe64(cgen_var_0);
     vkStream->write((const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
 }
 
@@ -1650,8 +1922,8 @@
 {
     vkStream->write((uint32_t*)&forMarshaling->constantID, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
-    uint64_t cgen_var_56 = (uint64_t)forMarshaling->size;
-    vkStream->putBe64(cgen_var_56);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->size;
+    vkStream->putBe64(cgen_var_0);
 }
 
 void unmarshal_VkSpecializationMapEntry(
@@ -1668,12 +1940,15 @@
     const VkSpecializationInfo* forMarshaling)
 {
     vkStream->write((uint32_t*)&forMarshaling->mapEntryCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->mapEntryCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkSpecializationMapEntry(vkStream, (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->mapEntryCount; ++i)
+        {
+            marshal_VkSpecializationMapEntry(vkStream, (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i));
+        }
     }
-    uint64_t cgen_var_58 = (uint64_t)forMarshaling->dataSize;
-    vkStream->putBe64(cgen_var_58);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
+    vkStream->putBe64(cgen_var_0);
     vkStream->write((const void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(const uint8_t));
 }
 
@@ -1682,9 +1957,12 @@
     VkSpecializationInfo* forUnmarshaling)
 {
     vkStream->read((uint32_t*)&forUnmarshaling->mapEntryCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mapEntryCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkSpecializationMapEntry(vkStream, (VkSpecializationMapEntry*)(forUnmarshaling->pMapEntries + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->mapEntryCount; ++i)
+        {
+            unmarshal_VkSpecializationMapEntry(vkStream, (VkSpecializationMapEntry*)(forUnmarshaling->pMapEntries + i));
+        }
     }
     forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
     vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(const uint8_t));
@@ -1698,13 +1976,13 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkPipelineShaderStageCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineShaderStageCreateFlags));
     vkStream->write((VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
-    uint64_t cgen_var_60;
-    vkStream->handleMapping()->mapHandles_VkShaderModule_u64(&forMarshaling->module, &cgen_var_60, 1);
-    vkStream->write((uint64_t*)&cgen_var_60, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkShaderModule_u64(&forMarshaling->module, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->putString(forMarshaling->pName);
     // WARNING PTR CHECK
-    uint64_t cgen_var_61 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
-    vkStream->putBe64(cgen_var_61);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pSpecializationInfo)
     {
         marshal_VkSpecializationInfo(vkStream, (const VkSpecializationInfo*)(forMarshaling->pSpecializationInfo));
@@ -1719,9 +1997,9 @@
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkPipelineShaderStageCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineShaderStageCreateFlags));
     vkStream->read((VkShaderStageFlagBits*)&forUnmarshaling->stage, sizeof(VkShaderStageFlagBits));
-    uint64_t cgen_var_62;
-    vkStream->read((uint64_t*)&cgen_var_62, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_62, (VkShaderModule*)&forUnmarshaling->module, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkShaderModule(&cgen_var_0, (VkShaderModule*)&forUnmarshaling->module, 1);
     vkStream->loadStringInPlace((char**)&forUnmarshaling->pName);
     // WARNING PTR CHECK
     const VkSpecializationInfo* check_pSpecializationInfo;
@@ -1736,6 +2014,40 @@
     }
 }
 
+void marshal_VkComputePipelineCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkComputePipelineCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
+    marshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
+}
+
+void unmarshal_VkComputePipelineCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkComputePipelineCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
+    unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forUnmarshaling->stage));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_1, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
+    vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
+}
+
 void marshal_VkVertexInputBindingDescription(
     VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDescription* forMarshaling)
@@ -1782,14 +2094,20 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkPipelineVertexInputStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineVertexInputStateCreateFlags));
     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDescriptionCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkVertexInputBindingDescription(vkStream, (const VkVertexInputBindingDescription*)(forMarshaling->pVertexBindingDescriptions + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDescriptionCount; ++i)
+        {
+            marshal_VkVertexInputBindingDescription(vkStream, (const VkVertexInputBindingDescription*)(forMarshaling->pVertexBindingDescriptions + i));
+        }
     }
     vkStream->write((uint32_t*)&forMarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexAttributeDescriptionCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkVertexInputAttributeDescription(vkStream, (const VkVertexInputAttributeDescription*)(forMarshaling->pVertexAttributeDescriptions + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexAttributeDescriptionCount; ++i)
+        {
+            marshal_VkVertexInputAttributeDescription(vkStream, (const VkVertexInputAttributeDescription*)(forMarshaling->pVertexAttributeDescriptions + i));
+        }
     }
 }
 
@@ -1801,14 +2119,20 @@
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkPipelineVertexInputStateCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineVertexInputStateCreateFlags));
     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDescriptionCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDescriptionCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkVertexInputBindingDescription(vkStream, (VkVertexInputBindingDescription*)(forUnmarshaling->pVertexBindingDescriptions + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDescriptionCount; ++i)
+        {
+            unmarshal_VkVertexInputBindingDescription(vkStream, (VkVertexInputBindingDescription*)(forUnmarshaling->pVertexBindingDescriptions + i));
+        }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->vertexAttributeDescriptionCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexAttributeDescriptionCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkVertexInputAttributeDescription(vkStream, (VkVertexInputAttributeDescription*)(forUnmarshaling->pVertexAttributeDescriptions + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexAttributeDescriptionCount; ++i)
+        {
+            unmarshal_VkVertexInputAttributeDescription(vkStream, (VkVertexInputAttributeDescription*)(forUnmarshaling->pVertexAttributeDescriptions + i));
+        }
     }
 }
 
@@ -1878,54 +2202,6 @@
     vkStream->read((float*)&forUnmarshaling->maxDepth, sizeof(float));
 }
 
-void marshal_VkOffset2D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset2D* forMarshaling)
-{
-    vkStream->write((int32_t*)&forMarshaling->x, sizeof(int32_t));
-    vkStream->write((int32_t*)&forMarshaling->y, sizeof(int32_t));
-}
-
-void unmarshal_VkOffset2D(
-    VulkanStreamGuest* vkStream,
-    VkOffset2D* forUnmarshaling)
-{
-    vkStream->read((int32_t*)&forUnmarshaling->x, sizeof(int32_t));
-    vkStream->read((int32_t*)&forUnmarshaling->y, sizeof(int32_t));
-}
-
-void marshal_VkExtent2D(
-    VulkanStreamGuest* vkStream,
-    const VkExtent2D* forMarshaling)
-{
-    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
-}
-
-void unmarshal_VkExtent2D(
-    VulkanStreamGuest* vkStream,
-    VkExtent2D* forUnmarshaling)
-{
-    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
-}
-
-void marshal_VkRect2D(
-    VulkanStreamGuest* vkStream,
-    const VkRect2D* forMarshaling)
-{
-    marshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset));
-    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent));
-}
-
-void unmarshal_VkRect2D(
-    VulkanStreamGuest* vkStream,
-    VkRect2D* forUnmarshaling)
-{
-    unmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forUnmarshaling->offset));
-    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->extent));
-}
-
 void marshal_VkPipelineViewportStateCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkPipelineViewportStateCreateInfo* forMarshaling)
@@ -1935,24 +2211,30 @@
     vkStream->write((VkPipelineViewportStateCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineViewportStateCreateFlags));
     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_64 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
-    vkStream->putBe64(cgen_var_64);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pViewports)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkViewport(vkStream, (const VkViewport*)(forMarshaling->pViewports + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+            {
+                marshal_VkViewport(vkStream, (const VkViewport*)(forMarshaling->pViewports + i));
+            }
         }
     }
     vkStream->write((uint32_t*)&forMarshaling->scissorCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_65 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
-    vkStream->putBe64(cgen_var_65);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pScissors)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->scissorCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pScissors + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->scissorCount; ++i)
+            {
+                marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pScissors + i));
+            }
         }
     }
 }
@@ -1974,9 +2256,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pViewports inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkViewport(vkStream, (VkViewport*)(forUnmarshaling->pViewports + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
+            {
+                unmarshal_VkViewport(vkStream, (VkViewport*)(forUnmarshaling->pViewports + i));
+            }
         }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->scissorCount, sizeof(uint32_t));
@@ -1989,9 +2274,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pScissors inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->scissorCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pScissors + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->scissorCount; ++i)
+            {
+                unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pScissors + i));
+            }
         }
     }
 }
@@ -2045,8 +2333,8 @@
     vkStream->write((VkBool32*)&forMarshaling->sampleShadingEnable, sizeof(VkBool32));
     vkStream->write((float*)&forMarshaling->minSampleShading, sizeof(float));
     // WARNING PTR CHECK
-    uint64_t cgen_var_68 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
-    vkStream->putBe64(cgen_var_68);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pSampleMask)
     {
         vkStream->write((const VkSampleMask*)forMarshaling->pSampleMask, (((forMarshaling->rasterizationSamples) + 31) / 32) * sizeof(const VkSampleMask));
@@ -2180,9 +2468,12 @@
     vkStream->write((VkBool32*)&forMarshaling->logicOpEnable, sizeof(VkBool32));
     vkStream->write((VkLogicOp*)&forMarshaling->logicOp, sizeof(VkLogicOp));
     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkPipelineColorBlendAttachmentState(vkStream, (const VkPipelineColorBlendAttachmentState*)(forMarshaling->pAttachments + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
+        {
+            marshal_VkPipelineColorBlendAttachmentState(vkStream, (const VkPipelineColorBlendAttachmentState*)(forMarshaling->pAttachments + i));
+        }
     }
     vkStream->write((float*)forMarshaling->blendConstants, 4 * sizeof(float));
 }
@@ -2197,9 +2488,12 @@
     vkStream->read((VkBool32*)&forUnmarshaling->logicOpEnable, sizeof(VkBool32));
     vkStream->read((VkLogicOp*)&forUnmarshaling->logicOp, sizeof(VkLogicOp));
     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkPipelineColorBlendAttachmentState(vkStream, (VkPipelineColorBlendAttachmentState*)(forUnmarshaling->pAttachments + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
+        {
+            unmarshal_VkPipelineColorBlendAttachmentState(vkStream, (VkPipelineColorBlendAttachmentState*)(forUnmarshaling->pAttachments + i));
+        }
     }
     vkStream->read((float*)forUnmarshaling->blendConstants, 4 * sizeof(float));
 }
@@ -2234,29 +2528,32 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
         hasRasterization = (((0 == forMarshaling->pRasterizationState)) ? (0) : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable)));
-        uint32_t cgen_var_70 = (uint32_t)hasRasterization;
-        vkStream->putBe32(cgen_var_70);
+        uint32_t cgen_var_0 = (uint32_t)hasRasterization;
+        vkStream->putBe32(cgen_var_0);
     }
     uint32_t hasTessellation = 1;
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
         hasTessellation = arrayany(forMarshaling->pStages, 0, forMarshaling->stageCount, [](VkPipelineShaderStageCreateInfo s) { return ((s.stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) || (s.stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)); });
-        uint32_t cgen_var_71 = (uint32_t)hasTessellation;
-        vkStream->putBe32(cgen_var_71);
+        uint32_t cgen_var_0 = (uint32_t)hasTessellation;
+        vkStream->putBe32(cgen_var_0);
     }
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
     vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+        {
+            marshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
+        }
     }
     // WARNING PTR CHECK
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
-        uint64_t cgen_var_72 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
-        vkStream->putBe64(cgen_var_72);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
+        vkStream->putBe64(cgen_var_0);
     }
     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forMarshaling->pVertexInputState))
     {
@@ -2265,16 +2562,16 @@
     // WARNING PTR CHECK
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
-        uint64_t cgen_var_73 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
-        vkStream->putBe64(cgen_var_73);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
+        vkStream->putBe64(cgen_var_0);
     }
     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forMarshaling->pInputAssemblyState))
     {
         marshal_VkPipelineInputAssemblyStateCreateInfo(vkStream, (const VkPipelineInputAssemblyStateCreateInfo*)(forMarshaling->pInputAssemblyState));
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_74 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
-    vkStream->putBe64(cgen_var_74);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pTessellationState)
     {
         if (hasTessellation)
@@ -2283,8 +2580,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_75 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
-    vkStream->putBe64(cgen_var_75);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pViewportState)
     {
         if (hasRasterization)
@@ -2295,16 +2592,16 @@
     // WARNING PTR CHECK
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
-        uint64_t cgen_var_76 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
-        vkStream->putBe64(cgen_var_76);
+        uint64_t cgen_var_1_0 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
+        vkStream->putBe64(cgen_var_1_0);
     }
     if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || forMarshaling->pRasterizationState))
     {
         marshal_VkPipelineRasterizationStateCreateInfo(vkStream, (const VkPipelineRasterizationStateCreateInfo*)(forMarshaling->pRasterizationState));
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_77 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
-    vkStream->putBe64(cgen_var_77);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
+    vkStream->putBe64(cgen_var_2);
     if (forMarshaling->pMultisampleState)
     {
         if (hasRasterization)
@@ -2313,8 +2610,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_78 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
-    vkStream->putBe64(cgen_var_78);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
+    vkStream->putBe64(cgen_var_3);
     if (forMarshaling->pDepthStencilState)
     {
         if (hasRasterization)
@@ -2323,8 +2620,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_79 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
-    vkStream->putBe64(cgen_var_79);
+    uint64_t cgen_var_4 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
+    vkStream->putBe64(cgen_var_4);
     if (forMarshaling->pColorBlendState)
     {
         if (hasRasterization)
@@ -2333,22 +2630,22 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_80 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
-    vkStream->putBe64(cgen_var_80);
+    uint64_t cgen_var_5 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
+    vkStream->putBe64(cgen_var_5);
     if (forMarshaling->pDynamicState)
     {
         marshal_VkPipelineDynamicStateCreateInfo(vkStream, (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState));
     }
-    uint64_t cgen_var_81;
-    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_81, 1);
-    vkStream->write((uint64_t*)&cgen_var_81, 1 * 8);
-    uint64_t cgen_var_82;
-    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_82, 1);
-    vkStream->write((uint64_t*)&cgen_var_82, 1 * 8);
+    uint64_t cgen_var_6;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_6, 1);
+    vkStream->write((uint64_t*)&cgen_var_6, 1 * 8);
+    uint64_t cgen_var_7;
+    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_7, 1);
+    vkStream->write((uint64_t*)&cgen_var_7, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
-    uint64_t cgen_var_83;
-    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_83, 1);
-    vkStream->write((uint64_t*)&cgen_var_83, 1 * 8);
+    uint64_t cgen_var_8;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_8, 1);
+    vkStream->write((uint64_t*)&cgen_var_8, 1 * 8);
     vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
 }
 
@@ -2370,9 +2667,12 @@
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
     vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i)
+        {
+            unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
+        }
     }
     // WARNING PTR CHECK
     const VkPipelineVertexInputStateCreateInfo* check_pVertexInputState;
@@ -2505,50 +2805,16 @@
         }
         unmarshal_VkPipelineDynamicStateCreateInfo(vkStream, (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState));
     }
-    uint64_t cgen_var_95;
-    vkStream->read((uint64_t*)&cgen_var_95, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_95, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
-    uint64_t cgen_var_96;
-    vkStream->read((uint64_t*)&cgen_var_96, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_96, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
+    uint64_t cgen_var_6;
+    vkStream->read((uint64_t*)&cgen_var_6, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_6, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
+    uint64_t cgen_var_7;
+    vkStream->read((uint64_t*)&cgen_var_7, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_7, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
-    uint64_t cgen_var_97;
-    vkStream->read((uint64_t*)&cgen_var_97, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_97, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
-    vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
-}
-
-void marshal_VkComputePipelineCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkComputePipelineCreateInfo* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
-    marshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage));
-    uint64_t cgen_var_98;
-    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_98, 1);
-    vkStream->write((uint64_t*)&cgen_var_98, 1 * 8);
-    uint64_t cgen_var_99;
-    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_99, 1);
-    vkStream->write((uint64_t*)&cgen_var_99, 1 * 8);
-    vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
-}
-
-void unmarshal_VkComputePipelineCreateInfo(
-    VulkanStreamGuest* vkStream,
-    VkComputePipelineCreateInfo* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
-    unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forUnmarshaling->stage));
-    uint64_t cgen_var_100;
-    vkStream->read((uint64_t*)&cgen_var_100, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_100, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
-    uint64_t cgen_var_101;
-    vkStream->read((uint64_t*)&cgen_var_101, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_101, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
+    uint64_t cgen_var_8;
+    vkStream->read((uint64_t*)&cgen_var_8, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_8, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
     vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
 }
 
@@ -2580,15 +2846,18 @@
     vkStream->write((uint32_t*)&forMarshaling->setLayoutCount, sizeof(uint32_t));
     if (forMarshaling->setLayoutCount)
     {
-        uint64_t* cgen_var_102;
-        vkStream->alloc((void**)&cgen_var_102, forMarshaling->setLayoutCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_102, forMarshaling->setLayoutCount);
-        vkStream->write((uint64_t*)cgen_var_102, forMarshaling->setLayoutCount * 8);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->setLayoutCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_0, forMarshaling->setLayoutCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->setLayoutCount * 8);
     }
     vkStream->write((uint32_t*)&forMarshaling->pushConstantRangeCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkPushConstantRange(vkStream, (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->pushConstantRangeCount; ++i)
+        {
+            marshal_VkPushConstantRange(vkStream, (const VkPushConstantRange*)(forMarshaling->pPushConstantRanges + i));
+        }
     }
 }
 
@@ -2602,15 +2871,18 @@
     vkStream->read((uint32_t*)&forUnmarshaling->setLayoutCount, sizeof(uint32_t));
     if (forUnmarshaling->setLayoutCount)
     {
-        uint64_t* cgen_var_103;
-        vkStream->alloc((void**)&cgen_var_103, forUnmarshaling->setLayoutCount * 8);
-        vkStream->read((uint64_t*)cgen_var_103, forUnmarshaling->setLayoutCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_103, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->setLayoutCount);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->setLayoutCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->setLayoutCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_0, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->setLayoutCount);
     }
     vkStream->read((uint32_t*)&forUnmarshaling->pushConstantRangeCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkPushConstantRange(vkStream, (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pushConstantRangeCount; ++i)
+        {
+            unmarshal_VkPushConstantRange(vkStream, (VkPushConstantRange*)(forUnmarshaling->pPushConstantRanges + i));
+        }
     }
 }
 
@@ -2662,82 +2934,90 @@
     vkStream->read((VkBool32*)&forUnmarshaling->unnormalizedCoordinates, sizeof(VkBool32));
 }
 
-void marshal_VkDescriptorSetLayoutBinding(
+void marshal_VkCopyDescriptorSet(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBinding* forMarshaling)
-{
-    vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
-    vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
-    vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
-    vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
-    // WARNING PTR CHECK
-    uint64_t cgen_var_104 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
-    vkStream->putBe64(cgen_var_104);
-    if (forMarshaling->pImmutableSamplers)
-    {
-        if (forMarshaling->descriptorCount)
-        {
-            uint64_t* cgen_var_105;
-            vkStream->alloc((void**)&cgen_var_105, forMarshaling->descriptorCount * 8);
-            vkStream->handleMapping()->mapHandles_VkSampler_u64(forMarshaling->pImmutableSamplers, cgen_var_105, forMarshaling->descriptorCount);
-            vkStream->write((uint64_t*)cgen_var_105, forMarshaling->descriptorCount * 8);
-        }
-    }
-}
-
-void unmarshal_VkDescriptorSetLayoutBinding(
-    VulkanStreamGuest* vkStream,
-    VkDescriptorSetLayoutBinding* forUnmarshaling)
-{
-    vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
-    vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
-    vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
-    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
-    // WARNING PTR CHECK
-    const VkSampler* check_pImmutableSamplers;
-    check_pImmutableSamplers = (const VkSampler*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->pImmutableSamplers)
-    {
-        if (!(check_pImmutableSamplers))
-        {
-            fprintf(stderr, "fatal: forUnmarshaling->pImmutableSamplers inconsistent between guest and host\n");
-        }
-        if (forUnmarshaling->descriptorCount)
-        {
-            uint64_t* cgen_var_107;
-            vkStream->alloc((void**)&cgen_var_107, forUnmarshaling->descriptorCount * 8);
-            vkStream->read((uint64_t*)cgen_var_107, forUnmarshaling->descriptorCount * 8);
-            vkStream->handleMapping()->mapHandles_u64_VkSampler(cgen_var_107, (VkSampler*)forUnmarshaling->pImmutableSamplers, forUnmarshaling->descriptorCount);
-        }
-    }
-}
-
-void marshal_VkDescriptorSetLayoutCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutCreateInfo* forMarshaling)
+    const VkCopyDescriptorSet* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
-    vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i)
-    {
-        marshal_VkDescriptorSetLayoutBinding(vkStream, (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i));
-    }
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->srcSet, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
 }
 
-void unmarshal_VkDescriptorSetLayoutCreateInfo(
+void unmarshal_VkCopyDescriptorSet(
     VulkanStreamGuest* vkStream,
-    VkDescriptorSetLayoutCreateInfo* forUnmarshaling)
+    VkCopyDescriptorSet* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkDescriptorSetLayoutCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
-    vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindingCount; ++i)
-    {
-        unmarshal_VkDescriptorSetLayoutBinding(vkStream, (VkDescriptorSetLayoutBinding*)(forUnmarshaling->pBindings + i));
-    }
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_0, (VkDescriptorSet*)&forUnmarshaling->srcSet, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->srcBinding, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->srcArrayElement, sizeof(uint32_t));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_1, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
+}
+
+void marshal_VkDescriptorBufferInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorBufferInfo* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkDescriptorBufferInfo(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorBufferInfo* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
+}
+
+void marshal_VkDescriptorImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorImageInfo* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+}
+
+void unmarshal_VkDescriptorImageInfo(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorImageInfo* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_0, (VkSampler*)&forUnmarshaling->sampler, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_1, (VkImageView*)&forUnmarshaling->imageView, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
 }
 
 void marshal_VkDescriptorPoolSize(
@@ -2765,9 +3045,12 @@
     vkStream->write((VkDescriptorPoolCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorPoolCreateFlags));
     vkStream->write((uint32_t*)&forMarshaling->maxSets, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->poolSizeCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->poolSizeCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkDescriptorPoolSize(vkStream, (const VkDescriptorPoolSize*)(forMarshaling->pPoolSizes + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->poolSizeCount; ++i)
+        {
+            marshal_VkDescriptorPoolSize(vkStream, (const VkDescriptorPoolSize*)(forMarshaling->pPoolSizes + i));
+        }
     }
 }
 
@@ -2780,9 +3063,12 @@
     vkStream->read((VkDescriptorPoolCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorPoolCreateFlags));
     vkStream->read((uint32_t*)&forUnmarshaling->maxSets, sizeof(uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->poolSizeCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->poolSizeCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkDescriptorPoolSize(vkStream, (VkDescriptorPoolSize*)(forUnmarshaling->pPoolSizes + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->poolSizeCount; ++i)
+        {
+            unmarshal_VkDescriptorPoolSize(vkStream, (VkDescriptorPoolSize*)(forUnmarshaling->pPoolSizes + i));
+        }
     }
 }
 
@@ -2792,16 +3078,16 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_108;
-    vkStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&forMarshaling->descriptorPool, &cgen_var_108, 1);
-    vkStream->write((uint64_t*)&cgen_var_108, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDescriptorPool_u64(&forMarshaling->descriptorPool, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
     if (forMarshaling->descriptorSetCount)
     {
-        uint64_t* cgen_var_109;
-        vkStream->alloc((void**)&cgen_var_109, forMarshaling->descriptorSetCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_109, forMarshaling->descriptorSetCount);
-        vkStream->write((uint64_t*)cgen_var_109, forMarshaling->descriptorSetCount * 8);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forMarshaling->descriptorSetCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(forMarshaling->pSetLayouts, cgen_var_1, forMarshaling->descriptorSetCount);
+        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->descriptorSetCount * 8);
     }
 }
 
@@ -2811,65 +3097,101 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_110;
-    vkStream->read((uint64_t*)&cgen_var_110, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_110, (VkDescriptorPool*)&forUnmarshaling->descriptorPool, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDescriptorPool(&cgen_var_0, (VkDescriptorPool*)&forUnmarshaling->descriptorPool, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
     if (forUnmarshaling->descriptorSetCount)
     {
-        uint64_t* cgen_var_111;
-        vkStream->alloc((void**)&cgen_var_111, forUnmarshaling->descriptorSetCount * 8);
-        vkStream->read((uint64_t*)cgen_var_111, forUnmarshaling->descriptorSetCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_111, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->descriptorSetCount);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
+        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->descriptorSetCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(cgen_var_1, (VkDescriptorSetLayout*)forUnmarshaling->pSetLayouts, forUnmarshaling->descriptorSetCount);
     }
 }
 
-void marshal_VkDescriptorImageInfo(
+void marshal_VkDescriptorSetLayoutBinding(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorImageInfo* forMarshaling)
+    const VkDescriptorSetLayoutBinding* forMarshaling)
 {
-    uint64_t cgen_var_112;
-    vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_112, 1);
-    vkStream->write((uint64_t*)&cgen_var_112, 1 * 8);
-    uint64_t cgen_var_113;
-    vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_113, 1);
-    vkStream->write((uint64_t*)&cgen_var_113, 1 * 8);
-    vkStream->write((VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+    vkStream->write((uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
+    vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
+    vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
+    vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pImmutableSamplers)
+    {
+        if (forMarshaling->descriptorCount)
+        {
+            uint64_t* cgen_var_0_0;
+            vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->descriptorCount * 8);
+            vkStream->handleMapping()->mapHandles_VkSampler_u64(forMarshaling->pImmutableSamplers, cgen_var_0_0, forMarshaling->descriptorCount);
+            vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->descriptorCount * 8);
+        }
+    }
 }
 
-void unmarshal_VkDescriptorImageInfo(
+void unmarshal_VkDescriptorSetLayoutBinding(
     VulkanStreamGuest* vkStream,
-    VkDescriptorImageInfo* forUnmarshaling)
+    VkDescriptorSetLayoutBinding* forUnmarshaling)
 {
-    uint64_t cgen_var_114;
-    vkStream->read((uint64_t*)&cgen_var_114, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_114, (VkSampler*)&forUnmarshaling->sampler, 1);
-    uint64_t cgen_var_115;
-    vkStream->read((uint64_t*)&cgen_var_115, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_115, (VkImageView*)&forUnmarshaling->imageView, 1);
-    vkStream->read((VkImageLayout*)&forUnmarshaling->imageLayout, sizeof(VkImageLayout));
+    vkStream->read((uint32_t*)&forUnmarshaling->binding, sizeof(uint32_t));
+    vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
+    vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
+    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
+    // WARNING PTR CHECK
+    const VkSampler* check_pImmutableSamplers;
+    check_pImmutableSamplers = (const VkSampler*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pImmutableSamplers)
+    {
+        if (!(check_pImmutableSamplers))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pImmutableSamplers inconsistent between guest and host\n");
+        }
+        if (forUnmarshaling->descriptorCount)
+        {
+            uint64_t* cgen_var_0_0;
+            vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->descriptorCount * 8);
+            vkStream->read((uint64_t*)cgen_var_0_0, forUnmarshaling->descriptorCount * 8);
+            vkStream->handleMapping()->mapHandles_u64_VkSampler(cgen_var_0_0, (VkSampler*)forUnmarshaling->pImmutableSamplers, forUnmarshaling->descriptorCount);
+        }
+    }
 }
 
-void marshal_VkDescriptorBufferInfo(
+void marshal_VkDescriptorSetLayoutCreateInfo(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorBufferInfo* forMarshaling)
+    const VkDescriptorSetLayoutCreateInfo* forMarshaling)
 {
-    uint64_t cgen_var_116;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_116, 1);
-    vkStream->write((uint64_t*)&cgen_var_116, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-    vkStream->write((VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
+    vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i)
+        {
+            marshal_VkDescriptorSetLayoutBinding(vkStream, (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i));
+        }
+    }
 }
 
-void unmarshal_VkDescriptorBufferInfo(
+void unmarshal_VkDescriptorSetLayoutCreateInfo(
     VulkanStreamGuest* vkStream,
-    VkDescriptorBufferInfo* forUnmarshaling)
+    VkDescriptorSetLayoutCreateInfo* forUnmarshaling)
 {
-    uint64_t cgen_var_117;
-    vkStream->read((uint64_t*)&cgen_var_117, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_117, (VkBuffer*)&forUnmarshaling->buffer, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->range, sizeof(VkDeviceSize));
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDescriptorSetLayoutCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->bindingCount; ++i)
+        {
+            unmarshal_VkDescriptorSetLayoutBinding(vkStream, (VkDescriptorSetLayoutBinding*)(forUnmarshaling->pBindings + i));
+        }
+    }
 }
 
 void marshal_VkWriteDescriptorSet(
@@ -2878,52 +3200,58 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_118;
-    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_118, 1);
-    vkStream->write((uint64_t*)&cgen_var_118, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
     // WARNING PTR CHECK
-    uint64_t cgen_var_119 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
-    vkStream->putBe64(cgen_var_119);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pImageInfo)
     {
         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_SAMPLER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forMarshaling->descriptorType))))
         {
-            for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
+            if ((forMarshaling) != nullptr)
             {
-                marshal_VkDescriptorImageInfo(vkStream, (const VkDescriptorImageInfo*)(forMarshaling->pImageInfo + i));
+                for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
+                {
+                    marshal_VkDescriptorImageInfo(vkStream, (const VkDescriptorImageInfo*)(forMarshaling->pImageInfo + i));
+                }
             }
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_120 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
-    vkStream->putBe64(cgen_var_120);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
+    vkStream->putBe64(cgen_var_2);
     if (forMarshaling->pBufferInfo)
     {
         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forMarshaling->descriptorType))))
         {
-            for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
+            if ((forMarshaling) != nullptr)
             {
-                marshal_VkDescriptorBufferInfo(vkStream, (const VkDescriptorBufferInfo*)(forMarshaling->pBufferInfo + i));
+                for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorCount; ++i)
+                {
+                    marshal_VkDescriptorBufferInfo(vkStream, (const VkDescriptorBufferInfo*)(forMarshaling->pBufferInfo + i));
+                }
             }
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_121 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
-    vkStream->putBe64(cgen_var_121);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
+    vkStream->putBe64(cgen_var_3);
     if (forMarshaling->pTexelBufferView)
     {
         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER == forMarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER == forMarshaling->descriptorType))))
         {
             if (forMarshaling->descriptorCount)
             {
-                uint64_t* cgen_var_122;
-                vkStream->alloc((void**)&cgen_var_122, forMarshaling->descriptorCount * 8);
-                vkStream->handleMapping()->mapHandles_VkBufferView_u64(forMarshaling->pTexelBufferView, cgen_var_122, forMarshaling->descriptorCount);
-                vkStream->write((uint64_t*)cgen_var_122, forMarshaling->descriptorCount * 8);
+                uint64_t* cgen_var_3_0;
+                vkStream->alloc((void**)&cgen_var_3_0, forMarshaling->descriptorCount * 8);
+                vkStream->handleMapping()->mapHandles_VkBufferView_u64(forMarshaling->pTexelBufferView, cgen_var_3_0, forMarshaling->descriptorCount);
+                vkStream->write((uint64_t*)cgen_var_3_0, forMarshaling->descriptorCount * 8);
             }
         }
     }
@@ -2935,9 +3263,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_123;
-    vkStream->read((uint64_t*)&cgen_var_123, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_123, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_0, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
@@ -2953,9 +3281,12 @@
         }
         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_SAMPLER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_IMAGE == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT == forUnmarshaling->descriptorType))))
         {
-            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
+            if ((forUnmarshaling) != nullptr)
             {
-                unmarshal_VkDescriptorImageInfo(vkStream, (VkDescriptorImageInfo*)(forUnmarshaling->pImageInfo + i));
+                for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
+                {
+                    unmarshal_VkDescriptorImageInfo(vkStream, (VkDescriptorImageInfo*)(forUnmarshaling->pImageInfo + i));
+                }
             }
         }
         else
@@ -2974,9 +3305,12 @@
         }
         if ((!(vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT) || ((VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER == forUnmarshaling->descriptorType) || (VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC == forUnmarshaling->descriptorType))))
         {
-            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
+            if ((forUnmarshaling) != nullptr)
             {
-                unmarshal_VkDescriptorBufferInfo(vkStream, (VkDescriptorBufferInfo*)(forUnmarshaling->pBufferInfo + i));
+                for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorCount; ++i)
+                {
+                    unmarshal_VkDescriptorBufferInfo(vkStream, (VkDescriptorBufferInfo*)(forUnmarshaling->pBufferInfo + i));
+                }
             }
         }
         else
@@ -2997,10 +3331,10 @@
         {
             if (forUnmarshaling->descriptorCount)
             {
-                uint64_t* cgen_var_127;
-                vkStream->alloc((void**)&cgen_var_127, forUnmarshaling->descriptorCount * 8);
-                vkStream->read((uint64_t*)cgen_var_127, forUnmarshaling->descriptorCount * 8);
-                vkStream->handleMapping()->mapHandles_u64_VkBufferView(cgen_var_127, (VkBufferView*)forUnmarshaling->pTexelBufferView, forUnmarshaling->descriptorCount);
+                uint64_t* cgen_var_3_0;
+                vkStream->alloc((void**)&cgen_var_3_0, forUnmarshaling->descriptorCount * 8);
+                vkStream->read((uint64_t*)cgen_var_3_0, forUnmarshaling->descriptorCount * 8);
+                vkStream->handleMapping()->mapHandles_u64_VkBufferView(cgen_var_3_0, (VkBufferView*)forUnmarshaling->pTexelBufferView, forUnmarshaling->descriptorCount);
             }
         }
         else
@@ -3010,90 +3344,6 @@
     }
 }
 
-void marshal_VkCopyDescriptorSet(
-    VulkanStreamGuest* vkStream,
-    const VkCopyDescriptorSet* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_128;
-    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->srcSet, &cgen_var_128, 1);
-    vkStream->write((uint64_t*)&cgen_var_128, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
-    uint64_t cgen_var_129;
-    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->dstSet, &cgen_var_129, 1);
-    vkStream->write((uint64_t*)&cgen_var_129, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
-}
-
-void unmarshal_VkCopyDescriptorSet(
-    VulkanStreamGuest* vkStream,
-    VkCopyDescriptorSet* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_130;
-    vkStream->read((uint64_t*)&cgen_var_130, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_130, (VkDescriptorSet*)&forUnmarshaling->srcSet, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->srcBinding, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->srcArrayElement, sizeof(uint32_t));
-    uint64_t cgen_var_131;
-    vkStream->read((uint64_t*)&cgen_var_131, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_131, (VkDescriptorSet*)&forUnmarshaling->dstSet, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->dstBinding, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->dstArrayElement, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->descriptorCount, sizeof(uint32_t));
-}
-
-void marshal_VkFramebufferCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkFramebufferCreateInfo* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkFramebufferCreateFlags*)&forMarshaling->flags, sizeof(VkFramebufferCreateFlags));
-    uint64_t cgen_var_132;
-    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_132, 1);
-    vkStream->write((uint64_t*)&cgen_var_132, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
-    if (forMarshaling->attachmentCount)
-    {
-        uint64_t* cgen_var_133;
-        vkStream->alloc((void**)&cgen_var_133, forMarshaling->attachmentCount * 8);
-        vkStream->handleMapping()->mapHandles_VkImageView_u64(forMarshaling->pAttachments, cgen_var_133, forMarshaling->attachmentCount);
-        vkStream->write((uint64_t*)cgen_var_133, forMarshaling->attachmentCount * 8);
-    }
-    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
-}
-
-void unmarshal_VkFramebufferCreateInfo(
-    VulkanStreamGuest* vkStream,
-    VkFramebufferCreateInfo* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkFramebufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkFramebufferCreateFlags));
-    uint64_t cgen_var_134;
-    vkStream->read((uint64_t*)&cgen_var_134, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_134, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
-    if (forUnmarshaling->attachmentCount)
-    {
-        uint64_t* cgen_var_135;
-        vkStream->alloc((void**)&cgen_var_135, forUnmarshaling->attachmentCount * 8);
-        vkStream->read((uint64_t*)cgen_var_135, forUnmarshaling->attachmentCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkImageView(cgen_var_135, (VkImageView*)forUnmarshaling->pAttachments, forUnmarshaling->attachmentCount);
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->layers, sizeof(uint32_t));
-}
-
 void marshal_VkAttachmentDescription(
     VulkanStreamGuest* vkStream,
     const VkAttachmentDescription* forMarshaling)
@@ -3140,6 +3390,52 @@
     vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
 }
 
+void marshal_VkFramebufferCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkFramebufferCreateFlags*)&forMarshaling->flags, sizeof(VkFramebufferCreateFlags));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    if (forMarshaling->attachmentCount)
+    {
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forMarshaling->attachmentCount * 8);
+        vkStream->handleMapping()->mapHandles_VkImageView_u64(forMarshaling->pAttachments, cgen_var_1, forMarshaling->attachmentCount);
+        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->attachmentCount * 8);
+    }
+    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
+}
+
+void unmarshal_VkFramebufferCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFramebufferCreateFlags*)&forUnmarshaling->flags, sizeof(VkFramebufferCreateFlags));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
+    if (forUnmarshaling->attachmentCount)
+    {
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->attachmentCount * 8);
+        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->attachmentCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkImageView(cgen_var_1, (VkImageView*)forUnmarshaling->pAttachments, forUnmarshaling->attachmentCount);
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->layers, sizeof(uint32_t));
+}
+
 void marshal_VkSubpassDescription(
     VulkanStreamGuest* vkStream,
     const VkSubpassDescription* forMarshaling)
@@ -3147,28 +3443,37 @@
     vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
     vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pInputAttachments + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
+        {
+            marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pInputAttachments + i));
+        }
     }
     vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
-    {
-        marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i));
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_136 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
-    vkStream->putBe64(cgen_var_136);
-    if (forMarshaling->pResolveAttachments)
+    if ((forMarshaling) != nullptr)
     {
         for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
         {
-            marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pResolveAttachments + i));
+            marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i));
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_137 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
-    vkStream->putBe64(cgen_var_137);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pResolveAttachments)
+    {
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
+            {
+                marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pResolveAttachments + i));
+            }
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pDepthStencilAttachment)
     {
         marshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pDepthStencilAttachment));
@@ -3184,14 +3489,20 @@
     vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
     vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pInputAttachments + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
+        {
+            unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pInputAttachments + i));
+        }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pColorAttachments + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
+        {
+            unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pColorAttachments + i));
+        }
     }
     // WARNING PTR CHECK
     const VkAttachmentReference* check_pResolveAttachments;
@@ -3202,9 +3513,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pResolveAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
+            {
+                unmarshal_VkAttachmentReference(vkStream, (VkAttachmentReference*)(forUnmarshaling->pResolveAttachments + i));
+            }
         }
     }
     // WARNING PTR CHECK
@@ -3256,19 +3570,28 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
     vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkAttachmentDescription(vkStream, (const VkAttachmentDescription*)(forMarshaling->pAttachments + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
+        {
+            marshal_VkAttachmentDescription(vkStream, (const VkAttachmentDescription*)(forMarshaling->pAttachments + i));
+        }
     }
     vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkSubpassDescription(vkStream, (const VkSubpassDescription*)(forMarshaling->pSubpasses + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
+        {
+            marshal_VkSubpassDescription(vkStream, (const VkSubpassDescription*)(forMarshaling->pSubpasses + i));
+        }
     }
     vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkSubpassDependency(vkStream, (const VkSubpassDependency*)(forMarshaling->pDependencies + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
+        {
+            marshal_VkSubpassDependency(vkStream, (const VkSubpassDependency*)(forMarshaling->pDependencies + i));
+        }
     }
 }
 
@@ -3280,19 +3603,28 @@
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags, sizeof(VkRenderPassCreateFlags));
     vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkAttachmentDescription(vkStream, (VkAttachmentDescription*)(forUnmarshaling->pAttachments + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
+        {
+            unmarshal_VkAttachmentDescription(vkStream, (VkAttachmentDescription*)(forUnmarshaling->pAttachments + i));
+        }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkSubpassDescription(vkStream, (VkSubpassDescription*)(forUnmarshaling->pSubpasses + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
+        {
+            unmarshal_VkSubpassDescription(vkStream, (VkSubpassDescription*)(forUnmarshaling->pSubpasses + i));
+        }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkSubpassDependency(vkStream, (VkSubpassDependency*)(forUnmarshaling->pDependencies + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
+        {
+            unmarshal_VkSubpassDependency(vkStream, (VkSubpassDependency*)(forUnmarshaling->pDependencies + i));
+        }
     }
 }
 
@@ -3322,9 +3654,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_140;
-    vkStream->handleMapping()->mapHandles_VkCommandPool_u64(&forMarshaling->commandPool, &cgen_var_140, 1);
-    vkStream->write((uint64_t*)&cgen_var_140, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkCommandPool_u64(&forMarshaling->commandPool, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkCommandBufferLevel*)&forMarshaling->level, sizeof(VkCommandBufferLevel));
     vkStream->write((uint32_t*)&forMarshaling->commandBufferCount, sizeof(uint32_t));
 }
@@ -3335,9 +3667,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_141;
-    vkStream->read((uint64_t*)&cgen_var_141, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_141, (VkCommandPool*)&forUnmarshaling->commandPool, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkCommandPool(&cgen_var_0, (VkCommandPool*)&forUnmarshaling->commandPool, 1);
     vkStream->read((VkCommandBufferLevel*)&forUnmarshaling->level, sizeof(VkCommandBufferLevel));
     vkStream->read((uint32_t*)&forUnmarshaling->commandBufferCount, sizeof(uint32_t));
 }
@@ -3348,13 +3680,13 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_142;
-    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_142, 1);
-    vkStream->write((uint64_t*)&cgen_var_142, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
-    uint64_t cgen_var_143;
-    vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_143, 1);
-    vkStream->write((uint64_t*)&cgen_var_143, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
     vkStream->write((VkBool32*)&forMarshaling->occlusionQueryEnable, sizeof(VkBool32));
     vkStream->write((VkQueryControlFlags*)&forMarshaling->queryFlags, sizeof(VkQueryControlFlags));
     vkStream->write((VkQueryPipelineStatisticFlags*)&forMarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
@@ -3366,13 +3698,13 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_144;
-    vkStream->read((uint64_t*)&cgen_var_144, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_144, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->subpass, sizeof(uint32_t));
-    uint64_t cgen_var_145;
-    vkStream->read((uint64_t*)&cgen_var_145, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_145, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_1, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
     vkStream->read((VkBool32*)&forUnmarshaling->occlusionQueryEnable, sizeof(VkBool32));
     vkStream->read((VkQueryControlFlags*)&forUnmarshaling->queryFlags, sizeof(VkQueryControlFlags));
     vkStream->read((VkQueryPipelineStatisticFlags*)&forUnmarshaling->pipelineStatistics, sizeof(VkQueryPipelineStatisticFlags));
@@ -3386,8 +3718,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkCommandBufferUsageFlags*)&forMarshaling->flags, sizeof(VkCommandBufferUsageFlags));
     // WARNING PTR CHECK
-    uint64_t cgen_var_146 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
-    vkStream->putBe64(cgen_var_146);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pInheritanceInfo)
     {
         marshal_VkCommandBufferInheritanceInfo(vkStream, (const VkCommandBufferInheritanceInfo*)(forMarshaling->pInheritanceInfo));
@@ -3452,60 +3784,6 @@
     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
 }
 
-void marshal_VkImageCopy(
-    VulkanStreamGuest* vkStream,
-    const VkImageCopy* forMarshaling)
-{
-    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
-    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
-    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
-    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
-    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
-}
-
-void unmarshal_VkImageCopy(
-    VulkanStreamGuest* vkStream,
-    VkImageCopy* forUnmarshaling)
-{
-    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
-    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
-    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
-    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
-    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
-}
-
-void marshal_VkImageBlit(
-    VulkanStreamGuest* vkStream,
-    const VkImageBlit* forMarshaling)
-{
-    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i));
-    }
-    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i));
-    }
-}
-
-void unmarshal_VkImageBlit(
-    VulkanStreamGuest* vkStream,
-    VkImageBlit* forUnmarshaling)
-{
-    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
-    }
-    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
-    }
-}
-
 void marshal_VkBufferImageCopy(
     VulkanStreamGuest* vkStream,
     const VkBufferImageCopy* forMarshaling)
@@ -3610,6 +3888,60 @@
     vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
 }
 
+void marshal_VkImageBlit(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit* forMarshaling)
+{
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i));
+    }
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i));
+    }
+}
+
+void unmarshal_VkImageBlit(
+    VulkanStreamGuest* vkStream,
+    VkImageBlit* forUnmarshaling)
+{
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
+    }
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
+    }
+}
+
+void marshal_VkImageCopy(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy* forMarshaling)
+{
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
+    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
+}
+
+void unmarshal_VkImageCopy(
+    VulkanStreamGuest* vkStream,
+    VkImageCopy* forUnmarshaling)
+{
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
+    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
+}
+
 void marshal_VkImageResolve(
     VulkanStreamGuest* vkStream,
     const VkImageResolve* forMarshaling)
@@ -3632,118 +3964,31 @@
     unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
 }
 
-void marshal_VkMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryBarrier* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-}
-
-void unmarshal_VkMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    VkMemoryBarrier* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
-}
-
-void marshal_VkBufferMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkBufferMemoryBarrier* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
-    uint64_t cgen_var_148;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_148, 1);
-    vkStream->write((uint64_t*)&cgen_var_148, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-}
-
-void unmarshal_VkBufferMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    VkBufferMemoryBarrier* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
-    uint64_t cgen_var_149;
-    vkStream->read((uint64_t*)&cgen_var_149, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_149, (VkBuffer*)&forUnmarshaling->buffer, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
-}
-
-void marshal_VkImageMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkImageMemoryBarrier* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    vkStream->write((VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
-    vkStream->write((VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
-    vkStream->write((uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
-    uint64_t cgen_var_150;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_150, 1);
-    vkStream->write((uint64_t*)&cgen_var_150, 1 * 8);
-    marshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange));
-}
-
-void unmarshal_VkImageMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    VkImageMemoryBarrier* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    vkStream->read((VkImageLayout*)&forUnmarshaling->oldLayout, sizeof(VkImageLayout));
-    vkStream->read((VkImageLayout*)&forUnmarshaling->newLayout, sizeof(VkImageLayout));
-    vkStream->read((uint32_t*)&forUnmarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
-    uint64_t cgen_var_151;
-    vkStream->read((uint64_t*)&cgen_var_151, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_151, (VkImage*)&forUnmarshaling->image, 1);
-    unmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forUnmarshaling->subresourceRange));
-}
-
 void marshal_VkRenderPassBeginInfo(
     VulkanStreamGuest* vkStream,
     const VkRenderPassBeginInfo* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_152;
-    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_152, 1);
-    vkStream->write((uint64_t*)&cgen_var_152, 1 * 8);
-    uint64_t cgen_var_153;
-    vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_153, 1);
-    vkStream->write((uint64_t*)&cgen_var_153, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkRenderPass_u64(&forMarshaling->renderPass, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkFramebuffer_u64(&forMarshaling->framebuffer, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
     marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->renderArea));
     vkStream->write((uint32_t*)&forMarshaling->clearValueCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_154 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
-    vkStream->putBe64(cgen_var_154);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
+    vkStream->putBe64(cgen_var_2);
     if (forMarshaling->pClearValues)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->clearValueCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkClearValue(vkStream, (const VkClearValue*)(forMarshaling->pClearValues + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->clearValueCount; ++i)
+            {
+                marshal_VkClearValue(vkStream, (const VkClearValue*)(forMarshaling->pClearValues + i));
+            }
         }
     }
 }
@@ -3754,12 +3999,12 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_155;
-    vkStream->read((uint64_t*)&cgen_var_155, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_155, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
-    uint64_t cgen_var_156;
-    vkStream->read((uint64_t*)&cgen_var_156, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_156, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkRenderPass(&cgen_var_0, (VkRenderPass*)&forUnmarshaling->renderPass, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkFramebuffer(&cgen_var_1, (VkFramebuffer*)&forUnmarshaling->framebuffer, 1);
     unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->renderArea));
     vkStream->read((uint32_t*)&forUnmarshaling->clearValueCount, sizeof(uint32_t));
     // WARNING PTR CHECK
@@ -3771,105 +4016,16 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pClearValues inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->clearValueCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkClearValue(vkStream, (VkClearValue*)(forUnmarshaling->pClearValues + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->clearValueCount; ++i)
+            {
+                unmarshal_VkClearValue(vkStream, (VkClearValue*)(forUnmarshaling->pClearValues + i));
+            }
         }
     }
 }
 
-void marshal_VkDispatchIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDispatchIndirectCommand* forMarshaling)
-{
-    vkStream->write((uint32_t*)&forMarshaling->x, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->y, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->z, sizeof(uint32_t));
-}
-
-void unmarshal_VkDispatchIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    VkDispatchIndirectCommand* forUnmarshaling)
-{
-    vkStream->read((uint32_t*)&forUnmarshaling->x, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->y, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->z, sizeof(uint32_t));
-}
-
-void marshal_VkDrawIndexedIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndexedIndirectCommand* forMarshaling)
-{
-    vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
-    vkStream->write((int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
-    vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
-}
-
-void unmarshal_VkDrawIndexedIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    VkDrawIndexedIndirectCommand* forUnmarshaling)
-{
-    vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->firstIndex, sizeof(uint32_t));
-    vkStream->read((int32_t*)&forUnmarshaling->vertexOffset, sizeof(int32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
-}
-
-void marshal_VkDrawIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndirectCommand* forMarshaling)
-{
-    vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
-}
-
-void unmarshal_VkDrawIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    VkDrawIndirectCommand* forUnmarshaling)
-{
-    vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->firstInstance, sizeof(uint32_t));
-}
-
-void marshal_VkBaseOutStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseOutStructure* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-}
-
-void unmarshal_VkBaseOutStructure(
-    VulkanStreamGuest* vkStream,
-    VkBaseOutStructure* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-}
-
-void marshal_VkBaseInStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseInStructure* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-}
-
-void unmarshal_VkBaseInStructure(
-    VulkanStreamGuest* vkStream,
-    VkBaseInStructure* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-}
-
 #endif
 #ifdef VK_VERSION_1_1
 void marshal_VkPhysicalDeviceSubgroupProperties(
@@ -3902,12 +4058,12 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_158;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_158, 1);
-    vkStream->write((uint64_t*)&cgen_var_158, 1 * 8);
-    uint64_t cgen_var_159;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_159, 1);
-    vkStream->write((uint64_t*)&cgen_var_159, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
 }
 
@@ -3917,12 +4073,12 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_160;
-    vkStream->read((uint64_t*)&cgen_var_160, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_160, (VkBuffer*)&forUnmarshaling->buffer, 1);
-    uint64_t cgen_var_161;
-    vkStream->read((uint64_t*)&cgen_var_161, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_161, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
 }
 
@@ -3932,12 +4088,12 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_162;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_162, 1);
-    vkStream->write((uint64_t*)&cgen_var_162, 1 * 8);
-    uint64_t cgen_var_163;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_163, 1);
-    vkStream->write((uint64_t*)&cgen_var_163, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
     vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
 }
 
@@ -3947,12 +4103,12 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_164;
-    vkStream->read((uint64_t*)&cgen_var_164, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_164, (VkImage*)&forUnmarshaling->image, 1);
-    uint64_t cgen_var_165;
-    vkStream->read((uint64_t*)&cgen_var_165, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_165, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
     vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
 }
 
@@ -4006,12 +4162,12 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_166;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_166, 1);
-    vkStream->write((uint64_t*)&cgen_var_166, 1 * 8);
-    uint64_t cgen_var_167;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_167, 1);
-    vkStream->write((uint64_t*)&cgen_var_167, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
 }
 
 void unmarshal_VkMemoryDedicatedAllocateInfo(
@@ -4020,12 +4176,12 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_168;
-    vkStream->read((uint64_t*)&cgen_var_168, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_168, (VkImage*)&forUnmarshaling->image, 1);
-    uint64_t cgen_var_169;
-    vkStream->read((uint64_t*)&cgen_var_169, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_169, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1, (VkBuffer*)&forUnmarshaling->buffer, 1);
 }
 
 void marshal_VkMemoryAllocateFlagsInfo(
@@ -4056,9 +4212,12 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->deviceRenderAreaCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->deviceRenderAreaCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDeviceRenderAreas + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->deviceRenderAreaCount; ++i)
+        {
+            marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDeviceRenderAreas + i));
+        }
     }
 }
 
@@ -4070,9 +4229,12 @@
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->deviceRenderAreaCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->deviceRenderAreaCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDeviceRenderAreas + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->deviceRenderAreaCount; ++i)
+        {
+            unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDeviceRenderAreas + i));
+        }
     }
 }
 
@@ -4171,9 +4333,12 @@
     vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
     vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices, forMarshaling->deviceIndexCount * sizeof(const uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->splitInstanceBindRegionCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pSplitInstanceBindRegions + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->splitInstanceBindRegionCount; ++i)
+        {
+            marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pSplitInstanceBindRegions + i));
+        }
     }
 }
 
@@ -4186,9 +4351,12 @@
     vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
     vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices, forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->splitInstanceBindRegionCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->splitInstanceBindRegionCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pSplitInstanceBindRegions + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->splitInstanceBindRegionCount; ++i)
+        {
+            unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pSplitInstanceBindRegions + i));
+        }
     }
 }
 
@@ -4223,10 +4391,10 @@
     vkStream->write((uint32_t*)&forMarshaling->physicalDeviceCount, sizeof(uint32_t));
     if (forMarshaling->physicalDeviceCount)
     {
-        uint64_t* cgen_var_170;
-        vkStream->alloc((void**)&cgen_var_170, forMarshaling->physicalDeviceCount * 8);
-        vkStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(forMarshaling->pPhysicalDevices, cgen_var_170, forMarshaling->physicalDeviceCount);
-        vkStream->write((uint64_t*)cgen_var_170, forMarshaling->physicalDeviceCount * 8);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->physicalDeviceCount * 8);
+        vkStream->handleMapping()->mapHandles_VkPhysicalDevice_u64(forMarshaling->pPhysicalDevices, cgen_var_0, forMarshaling->physicalDeviceCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->physicalDeviceCount * 8);
     }
 }
 
@@ -4239,10 +4407,10 @@
     vkStream->read((uint32_t*)&forUnmarshaling->physicalDeviceCount, sizeof(uint32_t));
     if (forUnmarshaling->physicalDeviceCount)
     {
-        uint64_t* cgen_var_171;
-        vkStream->alloc((void**)&cgen_var_171, forUnmarshaling->physicalDeviceCount * 8);
-        vkStream->read((uint64_t*)cgen_var_171, forUnmarshaling->physicalDeviceCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_171, (VkPhysicalDevice*)forUnmarshaling->pPhysicalDevices, forUnmarshaling->physicalDeviceCount);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->physicalDeviceCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->physicalDeviceCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkPhysicalDevice(cgen_var_0, (VkPhysicalDevice*)forUnmarshaling->pPhysicalDevices, forUnmarshaling->physicalDeviceCount);
     }
 }
 
@@ -4252,9 +4420,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_172;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_172, 1);
-    vkStream->write((uint64_t*)&cgen_var_172, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkBufferMemoryRequirementsInfo2(
@@ -4263,9 +4431,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_173;
-    vkStream->read((uint64_t*)&cgen_var_173, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_173, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
 }
 
 void marshal_VkImageMemoryRequirementsInfo2(
@@ -4274,9 +4442,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_174;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_174, 1);
-    vkStream->write((uint64_t*)&cgen_var_174, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkImageMemoryRequirementsInfo2(
@@ -4285,9 +4453,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_175;
-    vkStream->read((uint64_t*)&cgen_var_175, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_175, (VkImage*)&forUnmarshaling->image, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
 }
 
 void marshal_VkImageSparseMemoryRequirementsInfo2(
@@ -4296,9 +4464,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_176;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_176, 1);
-    vkStream->write((uint64_t*)&cgen_var_176, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkImageSparseMemoryRequirementsInfo2(
@@ -4307,9 +4475,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_177;
-    vkStream->read((uint64_t*)&cgen_var_177, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_177, (VkImage*)&forUnmarshaling->image, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
 }
 
 void marshal_VkMemoryRequirements2(
@@ -4569,9 +4737,12 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((uint32_t*)&forMarshaling->aspectReferenceCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->aspectReferenceCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkInputAttachmentAspectReference(vkStream, (const VkInputAttachmentAspectReference*)(forMarshaling->pAspectReferences + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->aspectReferenceCount; ++i)
+        {
+            marshal_VkInputAttachmentAspectReference(vkStream, (const VkInputAttachmentAspectReference*)(forMarshaling->pAspectReferences + i));
+        }
     }
 }
 
@@ -4582,9 +4753,12 @@
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((uint32_t*)&forUnmarshaling->aspectReferenceCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->aspectReferenceCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkInputAttachmentAspectReference(vkStream, (VkInputAttachmentAspectReference*)(forUnmarshaling->pAspectReferences + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->aspectReferenceCount; ++i)
+        {
+            unmarshal_VkInputAttachmentAspectReference(vkStream, (VkInputAttachmentAspectReference*)(forUnmarshaling->pAspectReferences + i));
+        }
     }
 }
 
@@ -4694,9 +4868,9 @@
     vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
 }
 
-void marshal_VkPhysicalDeviceVariablePointerFeatures(
+void marshal_VkPhysicalDeviceVariablePointersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceVariablePointerFeatures* forMarshaling)
+    const VkPhysicalDeviceVariablePointersFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
@@ -4704,9 +4878,9 @@
     vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
 }
 
-void unmarshal_VkPhysicalDeviceVariablePointerFeatures(
+void unmarshal_VkPhysicalDeviceVariablePointersFeatures(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceVariablePointerFeatures* forUnmarshaling)
+    VkPhysicalDeviceVariablePointersFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
@@ -4828,9 +5002,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_178;
-    vkStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&forMarshaling->conversion, &cgen_var_178, 1);
-    vkStream->write((uint64_t*)&cgen_var_178, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSamplerYcbcrConversion_u64(&forMarshaling->conversion, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkSamplerYcbcrConversionInfo(
@@ -4839,9 +5013,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_179;
-    vkStream->read((uint64_t*)&cgen_var_179, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_179, (VkSamplerYcbcrConversion*)&forUnmarshaling->conversion, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSamplerYcbcrConversion(&cgen_var_0, (VkSamplerYcbcrConversion*)&forUnmarshaling->conversion, 1);
 }
 
 void marshal_VkBindImagePlaneMemoryInfo(
@@ -4924,10 +5098,10 @@
     vkStream->write((uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
     vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
-    uint64_t cgen_var_180 = (uint64_t)forMarshaling->offset;
-    vkStream->putBe64(cgen_var_180);
-    uint64_t cgen_var_181 = (uint64_t)forMarshaling->stride;
-    vkStream->putBe64(cgen_var_181);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->offset;
+    vkStream->putBe64(cgen_var_0);
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->stride;
+    vkStream->putBe64(cgen_var_1);
 }
 
 void unmarshal_VkDescriptorUpdateTemplateEntry(
@@ -4950,18 +5124,21 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkDescriptorUpdateTemplateCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorUpdateTemplateCreateFlags));
     vkStream->write((uint32_t*)&forMarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorUpdateEntryCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkDescriptorUpdateTemplateEntry(vkStream, (const VkDescriptorUpdateTemplateEntry*)(forMarshaling->pDescriptorUpdateEntries + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->descriptorUpdateEntryCount; ++i)
+        {
+            marshal_VkDescriptorUpdateTemplateEntry(vkStream, (const VkDescriptorUpdateTemplateEntry*)(forMarshaling->pDescriptorUpdateEntries + i));
+        }
     }
     vkStream->write((VkDescriptorUpdateTemplateType*)&forMarshaling->templateType, sizeof(VkDescriptorUpdateTemplateType));
-    uint64_t cgen_var_184;
-    vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&forMarshaling->descriptorSetLayout, &cgen_var_184, 1);
-    vkStream->write((uint64_t*)&cgen_var_184, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDescriptorSetLayout_u64(&forMarshaling->descriptorSetLayout, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    uint64_t cgen_var_185;
-    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_185, 1);
-    vkStream->write((uint64_t*)&cgen_var_185, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->set, sizeof(uint32_t));
 }
 
@@ -4973,18 +5150,21 @@
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkDescriptorUpdateTemplateCreateFlags*)&forUnmarshaling->flags, sizeof(VkDescriptorUpdateTemplateCreateFlags));
     vkStream->read((uint32_t*)&forUnmarshaling->descriptorUpdateEntryCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorUpdateEntryCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkDescriptorUpdateTemplateEntry(vkStream, (VkDescriptorUpdateTemplateEntry*)(forUnmarshaling->pDescriptorUpdateEntries + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->descriptorUpdateEntryCount; ++i)
+        {
+            unmarshal_VkDescriptorUpdateTemplateEntry(vkStream, (VkDescriptorUpdateTemplateEntry*)(forUnmarshaling->pDescriptorUpdateEntries + i));
+        }
     }
     vkStream->read((VkDescriptorUpdateTemplateType*)&forUnmarshaling->templateType, sizeof(VkDescriptorUpdateTemplateType));
-    uint64_t cgen_var_186;
-    vkStream->read((uint64_t*)&cgen_var_186, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_186, (VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSetLayout(&cgen_var_0, (VkDescriptorSetLayout*)&forUnmarshaling->descriptorSetLayout, 1);
     vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    uint64_t cgen_var_187;
-    vkStream->read((uint64_t*)&cgen_var_187, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_187, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_1, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->set, sizeof(uint32_t));
 }
 
@@ -5316,18 +5496,18 @@
     vkStream->read((VkBool32*)&forUnmarshaling->supported, sizeof(VkBool32));
 }
 
-void marshal_VkPhysicalDeviceShaderDrawParameterFeatures(
+void marshal_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling)
+    const VkPhysicalDeviceShaderDrawParametersFeatures* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
 }
 
-void unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
+void unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceShaderDrawParameterFeatures* forUnmarshaling)
+    VkPhysicalDeviceShaderDrawParametersFeatures* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
@@ -5335,6 +5515,1644 @@
 }
 
 #endif
+#ifdef VK_VERSION_1_2
+void marshal_VkPhysicalDeviceVulkan11Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Features* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceVulkan11Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan11Features* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->storageInputOutput16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->multiview, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->multiviewGeometryShader, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->multiviewTessellationShader, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->variablePointers, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->protectedMemory, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->samplerYcbcrConversion, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDrawParameters, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceVulkan11Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Properties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    vkStream->write((uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    vkStream->write((uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
+    vkStream->write((uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
+    vkStream->write((VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
+    vkStream->write((VkShaderStageFlags*)&forMarshaling->subgroupSupportedStages, sizeof(VkShaderStageFlags));
+    vkStream->write((VkSubgroupFeatureFlags*)&forMarshaling->subgroupSupportedOperations, sizeof(VkSubgroupFeatureFlags));
+    vkStream->write((VkBool32*)&forMarshaling->subgroupQuadOperationsInAllStages, sizeof(VkBool32));
+    vkStream->write((VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior, sizeof(VkPointClippingBehavior));
+    vkStream->write((uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
+    vkStream->write((VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
+    vkStream->write((VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkPhysicalDeviceVulkan11Properties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan11Properties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint8_t*)forUnmarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    vkStream->read((uint8_t*)forUnmarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    vkStream->read((uint8_t*)forUnmarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->deviceNodeMask, sizeof(uint32_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->deviceLUIDValid, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
+    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->subgroupSupportedStages, sizeof(VkShaderStageFlags));
+    vkStream->read((VkSubgroupFeatureFlags*)&forUnmarshaling->subgroupSupportedOperations, sizeof(VkSubgroupFeatureFlags));
+    vkStream->read((VkBool32*)&forUnmarshaling->subgroupQuadOperationsInAllStages, sizeof(VkBool32));
+    vkStream->read((VkPointClippingBehavior*)&forUnmarshaling->pointClippingBehavior, sizeof(VkPointClippingBehavior));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewViewCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->protectedNoFault, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerSetDescriptors, sizeof(uint32_t));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
+}
+
+void marshal_VkPhysicalDeviceVulkan12Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Features* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->drawIndirectCount, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->samplerFilterMinmax, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderOutputLayer, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceVulkan12Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan12Features* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->drawIndirectCount, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInt8, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->samplerFilterMinmax, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->scalarBlockLayout, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->imagelessFramebuffer, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->hostQueryReset, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->timelineSemaphore, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModel, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderOutputLayer, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
+}
+
+void marshal_VkConformanceVersion(
+    VulkanStreamGuest* vkStream,
+    const VkConformanceVersion* forMarshaling)
+{
+    vkStream->write((uint8_t*)&forMarshaling->major, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->minor, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->subminor, sizeof(uint8_t));
+    vkStream->write((uint8_t*)&forMarshaling->patch, sizeof(uint8_t));
+}
+
+void unmarshal_VkConformanceVersion(
+    VulkanStreamGuest* vkStream,
+    VkConformanceVersion* forUnmarshaling)
+{
+    vkStream->read((uint8_t*)&forUnmarshaling->major, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->minor, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->subminor, sizeof(uint8_t));
+    vkStream->read((uint8_t*)&forUnmarshaling->patch, sizeof(uint8_t));
+}
+
+void marshal_VkPhysicalDeviceVulkan12Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Properties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
+    vkStream->write((char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    marshal_VkConformanceVersion(vkStream, (VkConformanceVersion*)(&forMarshaling->conformanceVersion));
+    vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->write((VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
+    vkStream->write((uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
+    vkStream->write((VkSampleCountFlags*)&forMarshaling->framebufferIntegerColorSampleCounts, sizeof(VkSampleCountFlags));
+}
+
+void unmarshal_VkPhysicalDeviceVulkan12Properties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan12Properties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDriverId*)&forUnmarshaling->driverID, sizeof(VkDriverId));
+    vkStream->read((char*)forUnmarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    unmarshal_VkConformanceVersion(vkStream, (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion));
+    vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->read((VkBool32*)&forUnmarshaling->independentResolveNone, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->independentResolve, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
+    vkStream->read((VkSampleCountFlags*)&forUnmarshaling->framebufferIntegerColorSampleCounts, sizeof(VkSampleCountFlags));
+}
+
+void marshal_VkImageFormatListCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageFormatListCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
+    vkStream->write((const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
+}
+
+void unmarshal_VkImageFormatListCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkImageFormatListCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
+    vkStream->read((VkFormat*)forUnmarshaling->pViewFormats, forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
+}
+
+void marshal_VkAttachmentDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescription2* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
+    vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
+    vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
+    vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
+    vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
+    vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
+    vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
+    vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
+}
+
+void unmarshal_VkAttachmentDescription2(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentDescription2* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
+    vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
+    vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
+    vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
+    vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
+    vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
+    vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
+}
+
+void marshal_VkAttachmentReference2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReference2* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
+    vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
+    vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
+}
+
+void unmarshal_VkAttachmentReference2(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentReference2* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
+    vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
+}
+
+void marshal_VkSubpassDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescription2* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
+    vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
+        {
+            marshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pInputAttachments + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
+        {
+            marshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pColorAttachments + i));
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pResolveAttachments)
+    {
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
+            {
+                marshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pResolveAttachments + i));
+            }
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pDepthStencilAttachment)
+    {
+        marshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pDepthStencilAttachment));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkSubpassDescription2(
+    VulkanStreamGuest* vkStream,
+    VkSubpassDescription2* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
+    vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
+        {
+            unmarshal_VkAttachmentReference2(vkStream, (VkAttachmentReference2*)(forUnmarshaling->pInputAttachments + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
+        {
+            unmarshal_VkAttachmentReference2(vkStream, (VkAttachmentReference2*)(forUnmarshaling->pColorAttachments + i));
+        }
+    }
+    // WARNING PTR CHECK
+    const VkAttachmentReference2* check_pResolveAttachments;
+    check_pResolveAttachments = (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pResolveAttachments)
+    {
+        if (!(check_pResolveAttachments))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and host\n");
+        }
+        if ((forUnmarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
+            {
+                unmarshal_VkAttachmentReference2(vkStream, (VkAttachmentReference2*)(forUnmarshaling->pResolveAttachments + i));
+            }
+        }
+    }
+    // WARNING PTR CHECK
+    const VkAttachmentReference2* check_pDepthStencilAttachment;
+    check_pDepthStencilAttachment = (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pDepthStencilAttachment)
+    {
+        if (!(check_pDepthStencilAttachment))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest and host\n");
+        }
+        unmarshal_VkAttachmentReference2(vkStream, (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilAttachment));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments, forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
+}
+
+void marshal_VkSubpassDependency2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDependency2* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
+    vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
+    vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
+    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
+    vkStream->write((int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
+}
+
+void unmarshal_VkSubpassDependency2(
+    VulkanStreamGuest* vkStream,
+    VkSubpassDependency2* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
+    vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
+    vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, sizeof(VkDependencyFlags));
+    vkStream->read((int32_t*)&forUnmarshaling->viewOffset, sizeof(int32_t));
+}
+
+void marshal_VkRenderPassCreateInfo2(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassCreateInfo2* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
+    vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
+        {
+            marshal_VkAttachmentDescription2(vkStream, (const VkAttachmentDescription2*)(forMarshaling->pAttachments + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
+        {
+            marshal_VkSubpassDescription2(vkStream, (const VkSubpassDescription2*)(forMarshaling->pSubpasses + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
+        {
+            marshal_VkSubpassDependency2(vkStream, (const VkSubpassDependency2*)(forMarshaling->pDependencies + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pCorrelatedViewMasks, forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkRenderPassCreateInfo2(
+    VulkanStreamGuest* vkStream,
+    VkRenderPassCreateInfo2* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags, sizeof(VkRenderPassCreateFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
+        {
+            unmarshal_VkAttachmentDescription2(vkStream, (VkAttachmentDescription2*)(forUnmarshaling->pAttachments + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
+        {
+            unmarshal_VkSubpassDescription2(vkStream, (VkSubpassDescription2*)(forUnmarshaling->pSubpasses + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
+        {
+            unmarshal_VkSubpassDependency2(vkStream, (VkSubpassDependency2*)(forUnmarshaling->pDependencies + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->correlatedViewMaskCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pCorrelatedViewMasks, forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
+}
+
+void marshal_VkSubpassBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassBeginInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
+}
+
+void unmarshal_VkSubpassBeginInfo(
+    VulkanStreamGuest* vkStream,
+    VkSubpassBeginInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSubpassContents*)&forUnmarshaling->contents, sizeof(VkSubpassContents));
+}
+
+void marshal_VkSubpassEndInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassEndInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+}
+
+void unmarshal_VkSubpassEndInfo(
+    VulkanStreamGuest* vkStream,
+    VkSubpassEndInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+}
+
+void marshal_VkPhysicalDevice8BitStorageFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice8BitStorageFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevice8BitStorageFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevice8BitStorageFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceDriverProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDriverProperties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
+    vkStream->write((char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    marshal_VkConformanceVersion(vkStream, (VkConformanceVersion*)(&forMarshaling->conformanceVersion));
+}
+
+void unmarshal_VkPhysicalDeviceDriverProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDriverProperties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDriverId*)&forUnmarshaling->driverID, sizeof(VkDriverId));
+    vkStream->read((char*)forUnmarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    unmarshal_VkConformanceVersion(vkStream, (VkConformanceVersion*)(&forUnmarshaling->conformanceVersion));
+}
+
+void marshal_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicInt64Features* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderAtomicInt64Features* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderFloat16Int8Features* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInt8, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceFloatControlsProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFloatControlsProperties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->write((VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceFloatControlsProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFloatControlsProperties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->denormBehaviorIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->read((VkShaderFloatControlsIndependence*)&forUnmarshaling->roundingModeIndependence, sizeof(VkShaderFloatControlsIndependence));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSignedZeroInfNanPreserveFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
+}
+
+void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pBindingFlags;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pBindingFlags)
+    {
+        vkStream->write((const VkDescriptorBindingFlags*)forMarshaling->pBindingFlags, forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
+    }
+}
+
+void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkDescriptorBindingFlags* check_pBindingFlags;
+    check_pBindingFlags = (const VkDescriptorBindingFlags*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pBindingFlags)
+    {
+        if (!(check_pBindingFlags))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pBindingFlags inconsistent between guest and host\n");
+        }
+        vkStream->read((VkDescriptorBindingFlags*)forUnmarshaling->pBindingFlags, forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
+    }
+}
+
+void marshal_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDescriptorIndexingFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingProperties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
+    vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDescriptorIndexingProperties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+}
+
+void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pDescriptorCounts, forMarshaling->descriptorSetCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pDescriptorCounts, forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
+}
+
+void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
+}
+
+void marshal_VkSubpassDescriptionDepthStencilResolve(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescriptionDepthStencilResolve* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkResolveModeFlagBits*)&forMarshaling->depthResolveMode, sizeof(VkResolveModeFlagBits));
+    vkStream->write((VkResolveModeFlagBits*)&forMarshaling->stencilResolveMode, sizeof(VkResolveModeFlagBits));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilResolveAttachment;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pDepthStencilResolveAttachment)
+    {
+        marshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pDepthStencilResolveAttachment));
+    }
+}
+
+void unmarshal_VkSubpassDescriptionDepthStencilResolve(
+    VulkanStreamGuest* vkStream,
+    VkSubpassDescriptionDepthStencilResolve* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->depthResolveMode, sizeof(VkResolveModeFlagBits));
+    vkStream->read((VkResolveModeFlagBits*)&forUnmarshaling->stencilResolveMode, sizeof(VkResolveModeFlagBits));
+    // WARNING PTR CHECK
+    const VkAttachmentReference2* check_pDepthStencilResolveAttachment;
+    check_pDepthStencilResolveAttachment = (const VkAttachmentReference2*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pDepthStencilResolveAttachment)
+    {
+        if (!(check_pDepthStencilResolveAttachment))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilResolveAttachment inconsistent between guest and host\n");
+        }
+        unmarshal_VkAttachmentReference2(vkStream, (VkAttachmentReference2*)(forUnmarshaling->pDepthStencilResolveAttachment));
+    }
+}
+
+void marshal_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthStencilResolveProperties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->write((VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->write((VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDepthStencilResolveProperties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedDepthResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->read((VkResolveModeFlags*)&forUnmarshaling->supportedStencilResolveModes, sizeof(VkResolveModeFlags));
+    vkStream->read((VkBool32*)&forUnmarshaling->independentResolveNone, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->independentResolve, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->scalarBlockLayout, sizeof(VkBool32));
+}
+
+void marshal_VkImageStencilUsageCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageStencilUsageCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkImageUsageFlags*)&forMarshaling->stencilUsage, sizeof(VkImageUsageFlags));
+}
+
+void unmarshal_VkImageStencilUsageCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkImageStencilUsageCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkImageUsageFlags*)&forUnmarshaling->stencilUsage, sizeof(VkImageUsageFlags));
+}
+
+void marshal_VkSamplerReductionModeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerReductionModeCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSamplerReductionMode*)&forMarshaling->reductionMode, sizeof(VkSamplerReductionMode));
+}
+
+void unmarshal_VkSamplerReductionModeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkSamplerReductionModeCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSamplerReductionMode*)&forUnmarshaling->reductionMode, sizeof(VkSamplerReductionMode));
+}
+
+void marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModel, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->vulkanMemoryModelAvailabilityVisibilityChains, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImagelessFramebufferFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->imagelessFramebuffer, sizeof(VkBool32));
+}
+
+void marshal_VkFramebufferAttachmentImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentImageInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
+    vkStream->write((VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
+    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
+    vkStream->write((const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
+}
+
+void unmarshal_VkFramebufferAttachmentImageInfo(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferAttachmentImageInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkImageCreateFlags*)&forUnmarshaling->flags, sizeof(VkImageCreateFlags));
+    vkStream->read((VkImageUsageFlags*)&forUnmarshaling->usage, sizeof(VkImageUsageFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->layerCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
+    vkStream->read((VkFormat*)forUnmarshaling->pViewFormats, forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
+}
+
+void marshal_VkFramebufferAttachmentsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentsCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->attachmentImageInfoCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentImageInfoCount; ++i)
+        {
+            marshal_VkFramebufferAttachmentImageInfo(vkStream, (const VkFramebufferAttachmentImageInfo*)(forMarshaling->pAttachmentImageInfos + i));
+        }
+    }
+}
+
+void unmarshal_VkFramebufferAttachmentsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferAttachmentsCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->attachmentImageInfoCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentImageInfoCount; ++i)
+        {
+            unmarshal_VkFramebufferAttachmentImageInfo(vkStream, (VkFramebufferAttachmentImageInfo*)(forUnmarshaling->pAttachmentImageInfos + i));
+        }
+    }
+}
+
+void marshal_VkRenderPassAttachmentBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassAttachmentBeginInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    if (forMarshaling->attachmentCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->attachmentCount * 8);
+        vkStream->handleMapping()->mapHandles_VkImageView_u64(forMarshaling->pAttachments, cgen_var_0, forMarshaling->attachmentCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->attachmentCount * 8);
+    }
+}
+
+void unmarshal_VkRenderPassAttachmentBeginInfo(
+    VulkanStreamGuest* vkStream,
+    VkRenderPassAttachmentBeginInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
+    if (forUnmarshaling->attachmentCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->attachmentCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->attachmentCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkImageView(cgen_var_0, (VkImageView*)forUnmarshaling->pAttachments, forUnmarshaling->attachmentCount);
+    }
+}
+
+void marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
+}
+
+void marshal_VkAttachmentReferenceStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReferenceStencilLayout* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkImageLayout*)&forMarshaling->stencilLayout, sizeof(VkImageLayout));
+}
+
+void unmarshal_VkAttachmentReferenceStencilLayout(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentReferenceStencilLayout* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->stencilLayout, sizeof(VkImageLayout));
+}
+
+void marshal_VkAttachmentDescriptionStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescriptionStencilLayout* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkImageLayout*)&forMarshaling->stencilInitialLayout, sizeof(VkImageLayout));
+    vkStream->write((VkImageLayout*)&forMarshaling->stencilFinalLayout, sizeof(VkImageLayout));
+}
+
+void unmarshal_VkAttachmentDescriptionStencilLayout(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentDescriptionStencilLayout* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->stencilInitialLayout, sizeof(VkImageLayout));
+    vkStream->read((VkImageLayout*)&forUnmarshaling->stencilFinalLayout, sizeof(VkImageLayout));
+}
+
+void marshal_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceHostQueryResetFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceHostQueryResetFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->hostQueryReset, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->timelineSemaphore, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
+}
+
+void unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTimelineSemaphoreProperties* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
+}
+
+void marshal_VkSemaphoreTypeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreTypeCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSemaphoreType*)&forMarshaling->semaphoreType, sizeof(VkSemaphoreType));
+    vkStream->write((uint64_t*)&forMarshaling->initialValue, sizeof(uint64_t));
+}
+
+void unmarshal_VkSemaphoreTypeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkSemaphoreTypeCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSemaphoreType*)&forUnmarshaling->semaphoreType, sizeof(VkSemaphoreType));
+    vkStream->read((uint64_t*)&forUnmarshaling->initialValue, sizeof(uint64_t));
+}
+
+void marshal_VkTimelineSemaphoreSubmitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkTimelineSemaphoreSubmitInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pWaitSemaphoreValues)
+    {
+        vkStream->write((const uint64_t*)forMarshaling->pWaitSemaphoreValues, forMarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
+    }
+    vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pSignalSemaphoreValues)
+    {
+        vkStream->write((const uint64_t*)forMarshaling->pSignalSemaphoreValues, forMarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
+    }
+}
+
+void unmarshal_VkTimelineSemaphoreSubmitInfo(
+    VulkanStreamGuest* vkStream,
+    VkTimelineSemaphoreSubmitInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const uint64_t* check_pWaitSemaphoreValues;
+    check_pWaitSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pWaitSemaphoreValues)
+    {
+        if (!(check_pWaitSemaphoreValues))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pWaitSemaphoreValues inconsistent between guest and host\n");
+        }
+        vkStream->read((uint64_t*)forUnmarshaling->pWaitSemaphoreValues, forUnmarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const uint64_t* check_pSignalSemaphoreValues;
+    check_pSignalSemaphoreValues = (const uint64_t*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pSignalSemaphoreValues)
+    {
+        if (!(check_pSignalSemaphoreValues))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pSignalSemaphoreValues inconsistent between guest and host\n");
+        }
+        vkStream->read((uint64_t*)forUnmarshaling->pSignalSemaphoreValues, forUnmarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
+    }
+}
+
+void marshal_VkSemaphoreWaitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreWaitInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSemaphoreWaitFlags*)&forMarshaling->flags, sizeof(VkSemaphoreWaitFlags));
+    vkStream->write((uint32_t*)&forMarshaling->semaphoreCount, sizeof(uint32_t));
+    if (forMarshaling->semaphoreCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->semaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pSemaphores, cgen_var_0, forMarshaling->semaphoreCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->semaphoreCount * 8);
+    }
+    vkStream->write((const uint64_t*)forMarshaling->pValues, forMarshaling->semaphoreCount * sizeof(const uint64_t));
+}
+
+void unmarshal_VkSemaphoreWaitInfo(
+    VulkanStreamGuest* vkStream,
+    VkSemaphoreWaitInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSemaphoreWaitFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreWaitFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->semaphoreCount, sizeof(uint32_t));
+    if (forUnmarshaling->semaphoreCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->semaphoreCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->semaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_0, (VkSemaphore*)forUnmarshaling->pSemaphores, forUnmarshaling->semaphoreCount);
+    }
+    vkStream->read((uint64_t*)forUnmarshaling->pValues, forUnmarshaling->semaphoreCount * sizeof(const uint64_t));
+}
+
+void marshal_VkSemaphoreSignalInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreSignalInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint64_t*)&forMarshaling->value, sizeof(uint64_t));
+}
+
+void unmarshal_VkSemaphoreSignalInfo(
+    VulkanStreamGuest* vkStream,
+    VkSemaphoreSignalInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
+    vkStream->read((uint64_t*)&forUnmarshaling->value, sizeof(uint64_t));
+}
+
+void marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+}
+
+void marshal_VkBufferDeviceAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+}
+
+void unmarshal_VkBufferDeviceAddressInfo(
+    VulkanStreamGuest* vkStream,
+    VkBufferDeviceAddressInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
+}
+
+void marshal_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferOpaqueCaptureAddressCreateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
+}
+
+void unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkBufferOpaqueCaptureAddressCreateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, sizeof(uint64_t));
+}
+
+void marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
+}
+
+void unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->opaqueCaptureAddress, sizeof(uint64_t));
+}
+
+void marshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+}
+
+void unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanStreamGuest* vkStream,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+}
+
+#endif
 #ifdef VK_KHR_surface
 void marshal_VkSurfaceCapabilitiesKHR(
     VulkanStreamGuest* vkStream,
@@ -5393,9 +7211,9 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkSwapchainCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkSwapchainCreateFlagsKHR));
-    uint64_t cgen_var_188;
-    vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_188, 1);
-    vkStream->write((uint64_t*)&cgen_var_188, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
     vkStream->write((VkFormat*)&forMarshaling->imageFormat, sizeof(VkFormat));
     vkStream->write((VkColorSpaceKHR*)&forMarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
@@ -5405,8 +7223,8 @@
     vkStream->write((VkSharingMode*)&forMarshaling->imageSharingMode, sizeof(VkSharingMode));
     vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_189 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    vkStream->putBe64(cgen_var_189);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pQueueFamilyIndices)
     {
         vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
@@ -5415,9 +7233,9 @@
     vkStream->write((VkCompositeAlphaFlagBitsKHR*)&forMarshaling->compositeAlpha, sizeof(VkCompositeAlphaFlagBitsKHR));
     vkStream->write((VkPresentModeKHR*)&forMarshaling->presentMode, sizeof(VkPresentModeKHR));
     vkStream->write((VkBool32*)&forMarshaling->clipped, sizeof(VkBool32));
-    uint64_t cgen_var_190;
-    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->oldSwapchain, &cgen_var_190, 1);
-    vkStream->write((uint64_t*)&cgen_var_190, 1 * 8);
+    uint64_t cgen_var_2;
+    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->oldSwapchain, &cgen_var_2, 1);
+    vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
 }
 
 void unmarshal_VkSwapchainCreateInfoKHR(
@@ -5427,9 +7245,9 @@
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkSwapchainCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkSwapchainCreateFlagsKHR));
-    uint64_t cgen_var_191;
-    vkStream->read((uint64_t*)&cgen_var_191, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_191, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_0, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->minImageCount, sizeof(uint32_t));
     vkStream->read((VkFormat*)&forUnmarshaling->imageFormat, sizeof(VkFormat));
     vkStream->read((VkColorSpaceKHR*)&forUnmarshaling->imageColorSpace, sizeof(VkColorSpaceKHR));
@@ -5453,9 +7271,9 @@
     vkStream->read((VkCompositeAlphaFlagBitsKHR*)&forUnmarshaling->compositeAlpha, sizeof(VkCompositeAlphaFlagBitsKHR));
     vkStream->read((VkPresentModeKHR*)&forUnmarshaling->presentMode, sizeof(VkPresentModeKHR));
     vkStream->read((VkBool32*)&forUnmarshaling->clipped, sizeof(VkBool32));
-    uint64_t cgen_var_193;
-    vkStream->read((uint64_t*)&cgen_var_193, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_193, (VkSwapchainKHR*)&forUnmarshaling->oldSwapchain, 1);
+    uint64_t cgen_var_2;
+    vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_2, (VkSwapchainKHR*)&forUnmarshaling->oldSwapchain, 1);
 }
 
 void marshal_VkPresentInfoKHR(
@@ -5467,23 +7285,23 @@
     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
     if (forMarshaling->waitSemaphoreCount)
     {
-        uint64_t* cgen_var_194;
-        vkStream->alloc((void**)&cgen_var_194, forMarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_194, forMarshaling->waitSemaphoreCount);
-        vkStream->write((uint64_t*)cgen_var_194, forMarshaling->waitSemaphoreCount * 8);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_VkSemaphore_u64(forMarshaling->pWaitSemaphores, cgen_var_0, forMarshaling->waitSemaphoreCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->waitSemaphoreCount * 8);
     }
     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
     if (forMarshaling->swapchainCount)
     {
-        uint64_t* cgen_var_195;
-        vkStream->alloc((void**)&cgen_var_195, forMarshaling->swapchainCount * 8);
-        vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(forMarshaling->pSwapchains, cgen_var_195, forMarshaling->swapchainCount);
-        vkStream->write((uint64_t*)cgen_var_195, forMarshaling->swapchainCount * 8);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forMarshaling->swapchainCount * 8);
+        vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(forMarshaling->pSwapchains, cgen_var_1, forMarshaling->swapchainCount);
+        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->swapchainCount * 8);
     }
     vkStream->write((const uint32_t*)forMarshaling->pImageIndices, forMarshaling->swapchainCount * sizeof(const uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_196 = (uint64_t)(uintptr_t)forMarshaling->pResults;
-    vkStream->putBe64(cgen_var_196);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pResults;
+    vkStream->putBe64(cgen_var_2);
     if (forMarshaling->pResults)
     {
         vkStream->write((VkResult*)forMarshaling->pResults, forMarshaling->swapchainCount * sizeof(VkResult));
@@ -5499,18 +7317,18 @@
     vkStream->read((uint32_t*)&forUnmarshaling->waitSemaphoreCount, sizeof(uint32_t));
     if (forUnmarshaling->waitSemaphoreCount)
     {
-        uint64_t* cgen_var_197;
-        vkStream->alloc((void**)&cgen_var_197, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->read((uint64_t*)cgen_var_197, forUnmarshaling->waitSemaphoreCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_197, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->waitSemaphoreCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkSemaphore(cgen_var_0, (VkSemaphore*)forUnmarshaling->pWaitSemaphores, forUnmarshaling->waitSemaphoreCount);
     }
     vkStream->read((uint32_t*)&forUnmarshaling->swapchainCount, sizeof(uint32_t));
     if (forUnmarshaling->swapchainCount)
     {
-        uint64_t* cgen_var_198;
-        vkStream->alloc((void**)&cgen_var_198, forUnmarshaling->swapchainCount * 8);
-        vkStream->read((uint64_t*)cgen_var_198, forUnmarshaling->swapchainCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_198, (VkSwapchainKHR*)forUnmarshaling->pSwapchains, forUnmarshaling->swapchainCount);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->swapchainCount * 8);
+        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->swapchainCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(cgen_var_1, (VkSwapchainKHR*)forUnmarshaling->pSwapchains, forUnmarshaling->swapchainCount);
     }
     vkStream->read((uint32_t*)forUnmarshaling->pImageIndices, forUnmarshaling->swapchainCount * sizeof(const uint32_t));
     // WARNING PTR CHECK
@@ -5532,9 +7350,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_200;
-    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_200, 1);
-    vkStream->write((uint64_t*)&cgen_var_200, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkImageSwapchainCreateInfoKHR(
@@ -5543,9 +7361,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_201;
-    vkStream->read((uint64_t*)&cgen_var_201, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_201, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
 }
 
 void marshal_VkBindImageMemorySwapchainInfoKHR(
@@ -5554,9 +7372,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_202;
-    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_202, 1);
-    vkStream->write((uint64_t*)&cgen_var_202, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->imageIndex, sizeof(uint32_t));
 }
 
@@ -5566,9 +7384,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_203;
-    vkStream->read((uint64_t*)&cgen_var_203, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_203, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->imageIndex, sizeof(uint32_t));
 }
 
@@ -5578,16 +7396,16 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_204;
-    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_204, 1);
-    vkStream->write((uint64_t*)&cgen_var_204, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSwapchainKHR_u64(&forMarshaling->swapchain, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
-    uint64_t cgen_var_205;
-    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_205, 1);
-    vkStream->write((uint64_t*)&cgen_var_205, 1 * 8);
-    uint64_t cgen_var_206;
-    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_206, 1);
-    vkStream->write((uint64_t*)&cgen_var_206, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    uint64_t cgen_var_2;
+    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_2, 1);
+    vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
 }
 
@@ -5597,16 +7415,16 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_207;
-    vkStream->read((uint64_t*)&cgen_var_207, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_207, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSwapchainKHR(&cgen_var_0, (VkSwapchainKHR*)&forUnmarshaling->swapchain, 1);
     vkStream->read((uint64_t*)&forUnmarshaling->timeout, sizeof(uint64_t));
-    uint64_t cgen_var_208;
-    vkStream->read((uint64_t*)&cgen_var_208, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_208, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
-    uint64_t cgen_var_209;
-    vkStream->read((uint64_t*)&cgen_var_209, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_209, (VkFence*)&forUnmarshaling->fence, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_1, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
+    uint64_t cgen_var_2;
+    vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_2, (VkFence*)&forUnmarshaling->fence, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->deviceMask, sizeof(uint32_t));
 }
 
@@ -5672,36 +7490,6 @@
 
 #endif
 #ifdef VK_KHR_display
-void marshal_VkDisplayPropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayPropertiesKHR* forMarshaling)
-{
-    uint64_t cgen_var_210;
-    vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->display, &cgen_var_210, 1);
-    vkStream->write((uint64_t*)&cgen_var_210, 1 * 8);
-    vkStream->putString(forMarshaling->displayName);
-    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalDimensions));
-    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalResolution));
-    vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
-    vkStream->write((VkBool32*)&forMarshaling->planeReorderPossible, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->persistentContent, sizeof(VkBool32));
-}
-
-void unmarshal_VkDisplayPropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    VkDisplayPropertiesKHR* forUnmarshaling)
-{
-    uint64_t cgen_var_211;
-    vkStream->read((uint64_t*)&cgen_var_211, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_211, (VkDisplayKHR*)&forUnmarshaling->display, 1);
-    vkStream->loadStringInPlace((char**)&forUnmarshaling->displayName);
-    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalDimensions));
-    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalResolution));
-    vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
-    vkStream->read((VkBool32*)&forUnmarshaling->planeReorderPossible, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->persistentContent, sizeof(VkBool32));
-}
-
 void marshal_VkDisplayModeParametersKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeParametersKHR* forMarshaling)
@@ -5718,26 +7506,6 @@
     vkStream->read((uint32_t*)&forUnmarshaling->refreshRate, sizeof(uint32_t));
 }
 
-void marshal_VkDisplayModePropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayModePropertiesKHR* forMarshaling)
-{
-    uint64_t cgen_var_212;
-    vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_212, 1);
-    vkStream->write((uint64_t*)&cgen_var_212, 1 * 8);
-    marshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
-}
-
-void unmarshal_VkDisplayModePropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    VkDisplayModePropertiesKHR* forUnmarshaling)
-{
-    uint64_t cgen_var_213;
-    vkStream->read((uint64_t*)&cgen_var_213, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_213, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
-    unmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
-}
-
 void marshal_VkDisplayModeCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeCreateInfoKHR* forMarshaling)
@@ -5758,6 +7526,26 @@
     unmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
 }
 
+void marshal_VkDisplayModePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayModePropertiesKHR* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    marshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters));
+}
+
+void unmarshal_VkDisplayModePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkDisplayModePropertiesKHR* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_0, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
+    unmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forUnmarshaling->parameters));
+}
+
 void marshal_VkDisplayPlaneCapabilitiesKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilitiesKHR* forMarshaling)
@@ -5792,9 +7580,9 @@
     VulkanStreamGuest* vkStream,
     const VkDisplayPlanePropertiesKHR* forMarshaling)
 {
-    uint64_t cgen_var_214;
-    vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->currentDisplay, &cgen_var_214, 1);
-    vkStream->write((uint64_t*)&cgen_var_214, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->currentDisplay, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->currentStackIndex, sizeof(uint32_t));
 }
 
@@ -5802,12 +7590,42 @@
     VulkanStreamGuest* vkStream,
     VkDisplayPlanePropertiesKHR* forUnmarshaling)
 {
-    uint64_t cgen_var_215;
-    vkStream->read((uint64_t*)&cgen_var_215, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_215, (VkDisplayKHR*)&forUnmarshaling->currentDisplay, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_0, (VkDisplayKHR*)&forUnmarshaling->currentDisplay, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->currentStackIndex, sizeof(uint32_t));
 }
 
+void marshal_VkDisplayPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayPropertiesKHR* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDisplayKHR_u64(&forMarshaling->display, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->putString(forMarshaling->displayName);
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalDimensions));
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalResolution));
+    vkStream->write((VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
+    vkStream->write((VkBool32*)&forMarshaling->planeReorderPossible, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->persistentContent, sizeof(VkBool32));
+}
+
+void unmarshal_VkDisplayPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkDisplayPropertiesKHR* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDisplayKHR(&cgen_var_0, (VkDisplayKHR*)&forUnmarshaling->display, 1);
+    vkStream->loadStringInPlace((char**)&forUnmarshaling->displayName);
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalDimensions));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->physicalResolution));
+    vkStream->read((VkSurfaceTransformFlagsKHR*)&forUnmarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
+    vkStream->read((VkBool32*)&forUnmarshaling->planeReorderPossible, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->persistentContent, sizeof(VkBool32));
+}
+
 void marshal_VkDisplaySurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplaySurfaceCreateInfoKHR* forMarshaling)
@@ -5815,9 +7633,9 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkDisplaySurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkDisplaySurfaceCreateFlagsKHR));
-    uint64_t cgen_var_216;
-    vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_216, 1);
-    vkStream->write((uint64_t*)&cgen_var_216, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->displayMode, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->planeStackIndex, sizeof(uint32_t));
     vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
@@ -5833,9 +7651,9 @@
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((VkDisplaySurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkDisplaySurfaceCreateFlagsKHR));
-    uint64_t cgen_var_217;
-    vkStream->read((uint64_t*)&cgen_var_217, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_217, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_0, (VkDisplayModeKHR*)&forUnmarshaling->displayMode, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->planeStackIndex, sizeof(uint32_t));
     vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
@@ -5878,8 +7696,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkXlibSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXlibSurfaceCreateFlagsKHR));
     // WARNING PTR CHECK
-    uint64_t cgen_var_218 = (uint64_t)(uintptr_t)forMarshaling->dpy;
-    vkStream->putBe64(cgen_var_218);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->dpy;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->dpy)
     {
         vkStream->write((Display*)forMarshaling->dpy, sizeof(Display));
@@ -5918,8 +7736,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkXcbSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXcbSurfaceCreateFlagsKHR));
     // WARNING PTR CHECK
-    uint64_t cgen_var_220 = (uint64_t)(uintptr_t)forMarshaling->connection;
-    vkStream->putBe64(cgen_var_220);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->connection;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->connection)
     {
         vkStream->write((xcb_connection_t*)forMarshaling->connection, sizeof(xcb_connection_t));
@@ -5958,15 +7776,15 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkWaylandSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkWaylandSurfaceCreateFlagsKHR));
     // WARNING PTR CHECK
-    uint64_t cgen_var_222 = (uint64_t)(uintptr_t)forMarshaling->display;
-    vkStream->putBe64(cgen_var_222);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->display;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->display)
     {
         vkStream->write((wl_display*)forMarshaling->display, sizeof(wl_display));
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_223 = (uint64_t)(uintptr_t)forMarshaling->surface;
-    vkStream->putBe64(cgen_var_223);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->surface;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->surface)
     {
         vkStream->write((wl_surface*)forMarshaling->surface, sizeof(wl_surface));
@@ -6005,62 +7823,6 @@
 }
 
 #endif
-#ifdef VK_KHR_mir_surface
-void marshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkMirSurfaceCreateInfoKHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkMirSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkMirSurfaceCreateFlagsKHR));
-    // WARNING PTR CHECK
-    uint64_t cgen_var_226 = (uint64_t)(uintptr_t)forMarshaling->connection;
-    vkStream->putBe64(cgen_var_226);
-    if (forMarshaling->connection)
-    {
-        vkStream->write((MirConnection*)forMarshaling->connection, sizeof(MirConnection));
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_227 = (uint64_t)(uintptr_t)forMarshaling->mirSurface;
-    vkStream->putBe64(cgen_var_227);
-    if (forMarshaling->mirSurface)
-    {
-        vkStream->write((MirSurface*)forMarshaling->mirSurface, sizeof(MirSurface));
-    }
-}
-
-void unmarshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkMirSurfaceCreateInfoKHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkMirSurfaceCreateFlagsKHR*)&forUnmarshaling->flags, sizeof(VkMirSurfaceCreateFlagsKHR));
-    // WARNING PTR CHECK
-    MirConnection* check_connection;
-    check_connection = (MirConnection*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->connection)
-    {
-        if (!(check_connection))
-        {
-            fprintf(stderr, "fatal: forUnmarshaling->connection inconsistent between guest and host\n");
-        }
-        vkStream->read((MirConnection*)forUnmarshaling->connection, sizeof(MirConnection));
-    }
-    // WARNING PTR CHECK
-    MirSurface* check_mirSurface;
-    check_mirSurface = (MirSurface*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->mirSurface)
-    {
-        if (!(check_mirSurface))
-        {
-            fprintf(stderr, "fatal: forUnmarshaling->mirSurface inconsistent between guest and host\n");
-        }
-        vkStream->read((MirSurface*)forUnmarshaling->mirSurface, sizeof(MirSurface));
-    }
-}
-
-#endif
 #ifdef VK_KHR_android_surface
 void marshal_VkAndroidSurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -6070,8 +7832,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkAndroidSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkAndroidSurfaceCreateFlagsKHR));
     // WARNING PTR CHECK
-    uint64_t cgen_var_230 = (uint64_t)(uintptr_t)forMarshaling->window;
-    vkStream->putBe64(cgen_var_230);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->window;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->window)
     {
         vkStream->write((ANativeWindow*)forMarshaling->window, sizeof(ANativeWindow));
@@ -6171,8 +7933,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     // WARNING PTR CHECK
-    uint64_t cgen_var_232 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    vkStream->putBe64(cgen_var_232);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pAttributes)
     {
         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
@@ -6226,9 +7988,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_234;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_234, 1);
-    vkStream->write((uint64_t*)&cgen_var_234, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
 }
 
@@ -6238,9 +8000,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_235;
-    vkStream->read((uint64_t*)&cgen_var_235, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_235, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
 }
 
@@ -6290,9 +8052,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_236;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_236, 1);
-    vkStream->write((uint64_t*)&cgen_var_236, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
 }
 
@@ -6302,9 +8064,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_237;
-    vkStream->read((uint64_t*)&cgen_var_237, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_237, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
     vkStream->read((VkExternalMemoryHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
 }
 
@@ -6319,20 +8081,20 @@
     vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
     if (forMarshaling->acquireCount)
     {
-        uint64_t* cgen_var_238;
-        vkStream->alloc((void**)&cgen_var_238, forMarshaling->acquireCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_238, forMarshaling->acquireCount);
-        vkStream->write((uint64_t*)cgen_var_238, forMarshaling->acquireCount * 8);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->acquireCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_0, forMarshaling->acquireCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->acquireCount * 8);
     }
     vkStream->write((const uint64_t*)forMarshaling->pAcquireKeys, forMarshaling->acquireCount * sizeof(const uint64_t));
     vkStream->write((const uint32_t*)forMarshaling->pAcquireTimeouts, forMarshaling->acquireCount * sizeof(const uint32_t));
     vkStream->write((uint32_t*)&forMarshaling->releaseCount, sizeof(uint32_t));
     if (forMarshaling->releaseCount)
     {
-        uint64_t* cgen_var_239;
-        vkStream->alloc((void**)&cgen_var_239, forMarshaling->releaseCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_239, forMarshaling->releaseCount);
-        vkStream->write((uint64_t*)cgen_var_239, forMarshaling->releaseCount * 8);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forMarshaling->releaseCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_1, forMarshaling->releaseCount);
+        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->releaseCount * 8);
     }
     vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys, forMarshaling->releaseCount * sizeof(const uint64_t));
 }
@@ -6346,20 +8108,20 @@
     vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
     if (forUnmarshaling->acquireCount)
     {
-        uint64_t* cgen_var_240;
-        vkStream->alloc((void**)&cgen_var_240, forUnmarshaling->acquireCount * 8);
-        vkStream->read((uint64_t*)cgen_var_240, forUnmarshaling->acquireCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_240, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->acquireCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->acquireCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_0, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
     }
     vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
     vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeouts, forUnmarshaling->acquireCount * sizeof(const uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
     if (forUnmarshaling->releaseCount)
     {
-        uint64_t* cgen_var_241;
-        vkStream->alloc((void**)&cgen_var_241, forUnmarshaling->releaseCount * 8);
-        vkStream->read((uint64_t*)cgen_var_241, forUnmarshaling->releaseCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_241, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->releaseCount * 8);
+        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->releaseCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_1, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
     }
     vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
 }
@@ -6376,9 +8138,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_242;
-    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_242, 1);
-    vkStream->write((uint64_t*)&cgen_var_242, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
@@ -6391,9 +8153,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_243;
-    vkStream->read((uint64_t*)&cgen_var_243, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_243, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreImportFlags));
     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
@@ -6407,8 +8169,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     // WARNING PTR CHECK
-    uint64_t cgen_var_244 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    vkStream->putBe64(cgen_var_244);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pAttributes)
     {
         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
@@ -6446,16 +8208,16 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((uint32_t*)&forMarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_246 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
-    vkStream->putBe64(cgen_var_246);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pWaitSemaphoreValues)
     {
         vkStream->write((const uint64_t*)forMarshaling->pWaitSemaphoreValues, forMarshaling->waitSemaphoreValuesCount * sizeof(const uint64_t));
     }
     vkStream->write((uint32_t*)&forMarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_247 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
-    vkStream->putBe64(cgen_var_247);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pSignalSemaphoreValues)
     {
         vkStream->write((const uint64_t*)forMarshaling->pSignalSemaphoreValues, forMarshaling->signalSemaphoreValuesCount * sizeof(const uint64_t));
@@ -6500,9 +8262,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_250;
-    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_250, 1);
-    vkStream->write((uint64_t*)&cgen_var_250, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
 }
 
@@ -6512,9 +8274,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_251;
-    vkStream->read((uint64_t*)&cgen_var_251, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_251, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
 }
 
@@ -6526,9 +8288,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_252;
-    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_252, 1);
-    vkStream->write((uint64_t*)&cgen_var_252, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
@@ -6540,9 +8302,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_253;
-    vkStream->read((uint64_t*)&cgen_var_253, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_253, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
     vkStream->read((VkSemaphoreImportFlags*)&forUnmarshaling->flags, sizeof(VkSemaphoreImportFlags));
     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
@@ -6554,9 +8316,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_254;
-    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_254, 1);
-    vkStream->write((uint64_t*)&cgen_var_254, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSemaphore_u64(&forMarshaling->semaphore, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
 }
 
@@ -6566,9 +8328,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_255;
-    vkStream->read((uint64_t*)&cgen_var_255, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_255, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSemaphore(&cgen_var_0, (VkSemaphore*)&forUnmarshaling->semaphore, 1);
     vkStream->read((VkExternalSemaphoreHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
 }
 
@@ -6593,6 +8355,8 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -6620,13 +8384,16 @@
 {
     vkStream->write((uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_256 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
-    vkStream->putBe64(cgen_var_256);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pRectangles)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkRectLayerKHR(vkStream, (const VkRectLayerKHR*)(forMarshaling->pRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->rectangleCount; ++i)
+            {
+                marshal_VkRectLayerKHR(vkStream, (const VkRectLayerKHR*)(forMarshaling->pRectangles + i));
+            }
         }
     }
 }
@@ -6645,9 +8412,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pRectangles inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkRectLayerKHR(vkStream, (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->rectangleCount; ++i)
+            {
+                unmarshal_VkRectLayerKHR(vkStream, (VkRectLayerKHR*)(forUnmarshaling->pRectangles + i));
+            }
         }
     }
 }
@@ -6660,13 +8430,16 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_258 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
-    vkStream->putBe64(cgen_var_258);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pRegions)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkPresentRegionKHR(vkStream, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
+            {
+                marshal_VkPresentRegionKHR(vkStream, (const VkPresentRegionKHR*)(forMarshaling->pRegions + i));
+            }
         }
     }
 }
@@ -6687,9 +8460,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pRegions inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkPresentRegionKHR(vkStream, (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
+            {
+                unmarshal_VkPresentRegionKHR(vkStream, (VkPresentRegionKHR*)(forUnmarshaling->pRegions + i));
+            }
         }
     }
 }
@@ -6697,269 +8473,9 @@
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
-void marshal_VkAttachmentDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentDescription2KHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
-    vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
-    vkStream->write((VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
-    vkStream->write((VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
-    vkStream->write((VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
-    vkStream->write((VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
-    vkStream->write((VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
-    vkStream->write((VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
-    vkStream->write((VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
-}
-
-void unmarshal_VkAttachmentDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    VkAttachmentDescription2KHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkAttachmentDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
-    vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
-    vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->samples, sizeof(VkSampleCountFlagBits));
-    vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->loadOp, sizeof(VkAttachmentLoadOp));
-    vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->storeOp, sizeof(VkAttachmentStoreOp));
-    vkStream->read((VkAttachmentLoadOp*)&forUnmarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
-    vkStream->read((VkAttachmentStoreOp*)&forUnmarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
-    vkStream->read((VkImageLayout*)&forUnmarshaling->initialLayout, sizeof(VkImageLayout));
-    vkStream->read((VkImageLayout*)&forUnmarshaling->finalLayout, sizeof(VkImageLayout));
-}
-
-void marshal_VkAttachmentReference2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentReference2KHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
-    vkStream->write((VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
-    vkStream->write((VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
-}
-
-void unmarshal_VkAttachmentReference2KHR(
-    VulkanStreamGuest* vkStream,
-    VkAttachmentReference2KHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->attachment, sizeof(uint32_t));
-    vkStream->read((VkImageLayout*)&forUnmarshaling->layout, sizeof(VkImageLayout));
-    vkStream->read((VkImageAspectFlags*)&forUnmarshaling->aspectMask, sizeof(VkImageAspectFlags));
-}
-
-void marshal_VkSubpassDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDescription2KHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
-    vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    vkStream->write((uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
-    {
-        marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pInputAttachments + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
-    {
-        marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pColorAttachments + i));
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_260 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
-    vkStream->putBe64(cgen_var_260);
-    if (forMarshaling->pResolveAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
-        {
-            marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pResolveAttachments + i));
-        }
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_261 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
-    vkStream->putBe64(cgen_var_261);
-    if (forMarshaling->pDepthStencilAttachment)
-    {
-        marshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pDepthStencilAttachment));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
-    vkStream->write((const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
-}
-
-void unmarshal_VkSubpassDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassDescription2KHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkSubpassDescriptionFlags*)&forUnmarshaling->flags, sizeof(VkSubpassDescriptionFlags));
-    vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    vkStream->read((uint32_t*)&forUnmarshaling->viewMask, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->inputAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->inputAttachmentCount; ++i)
-    {
-        unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pInputAttachments + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->colorAttachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
-    {
-        unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pColorAttachments + i));
-    }
-    // WARNING PTR CHECK
-    const VkAttachmentReference2KHR* check_pResolveAttachments;
-    check_pResolveAttachments = (const VkAttachmentReference2KHR*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->pResolveAttachments)
-    {
-        if (!(check_pResolveAttachments))
-        {
-            fprintf(stderr, "fatal: forUnmarshaling->pResolveAttachments inconsistent between guest and host\n");
-        }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->colorAttachmentCount; ++i)
-        {
-            unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pResolveAttachments + i));
-        }
-    }
-    // WARNING PTR CHECK
-    const VkAttachmentReference2KHR* check_pDepthStencilAttachment;
-    check_pDepthStencilAttachment = (const VkAttachmentReference2KHR*)(uintptr_t)vkStream->getBe64();
-    if (forUnmarshaling->pDepthStencilAttachment)
-    {
-        if (!(check_pDepthStencilAttachment))
-        {
-            fprintf(stderr, "fatal: forUnmarshaling->pDepthStencilAttachment inconsistent between guest and host\n");
-        }
-        unmarshal_VkAttachmentReference2KHR(vkStream, (VkAttachmentReference2KHR*)(forUnmarshaling->pDepthStencilAttachment));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->preserveAttachmentCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)forUnmarshaling->pPreserveAttachments, forUnmarshaling->preserveAttachmentCount * sizeof(const uint32_t));
-}
-
-void marshal_VkSubpassDependency2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDependency2KHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
-    vkStream->write((VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
-    vkStream->write((VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
-    vkStream->write((VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->write((VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    vkStream->write((VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
-    vkStream->write((int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
-}
-
-void unmarshal_VkSubpassDependency2KHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassDependency2KHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->srcSubpass, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->dstSubpass, sizeof(uint32_t));
-    vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
-    vkStream->read((VkPipelineStageFlags*)&forUnmarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    vkStream->read((VkAccessFlags*)&forUnmarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    vkStream->read((VkDependencyFlags*)&forUnmarshaling->dependencyFlags, sizeof(VkDependencyFlags));
-    vkStream->read((int32_t*)&forUnmarshaling->viewOffset, sizeof(int32_t));
-}
-
-void marshal_VkRenderPassCreateInfo2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkRenderPassCreateInfo2KHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
-    vkStream->write((uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
-    {
-        marshal_VkAttachmentDescription2KHR(vkStream, (const VkAttachmentDescription2KHR*)(forMarshaling->pAttachments + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
-    {
-        marshal_VkSubpassDescription2KHR(vkStream, (const VkSubpassDescription2KHR*)(forMarshaling->pSubpasses + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
-    {
-        marshal_VkSubpassDependency2KHR(vkStream, (const VkSubpassDependency2KHR*)(forMarshaling->pDependencies + i));
-    }
-    vkStream->write((uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
-    vkStream->write((const uint32_t*)forMarshaling->pCorrelatedViewMasks, forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
-}
-
-void unmarshal_VkRenderPassCreateInfo2KHR(
-    VulkanStreamGuest* vkStream,
-    VkRenderPassCreateInfo2KHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkRenderPassCreateFlags*)&forUnmarshaling->flags, sizeof(VkRenderPassCreateFlags));
-    vkStream->read((uint32_t*)&forUnmarshaling->attachmentCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentCount; ++i)
-    {
-        unmarshal_VkAttachmentDescription2KHR(vkStream, (VkAttachmentDescription2KHR*)(forUnmarshaling->pAttachments + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->subpassCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->subpassCount; ++i)
-    {
-        unmarshal_VkSubpassDescription2KHR(vkStream, (VkSubpassDescription2KHR*)(forUnmarshaling->pSubpasses + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->dependencyCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->dependencyCount; ++i)
-    {
-        unmarshal_VkSubpassDependency2KHR(vkStream, (VkSubpassDependency2KHR*)(forUnmarshaling->pDependencies + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->correlatedViewMaskCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)forUnmarshaling->pCorrelatedViewMasks, forUnmarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
-}
-
-void marshal_VkSubpassBeginInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassBeginInfoKHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
-}
-
-void unmarshal_VkSubpassBeginInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassBeginInfoKHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkSubpassContents*)&forUnmarshaling->contents, sizeof(VkSubpassContents));
-}
-
-void marshal_VkSubpassEndInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassEndInfoKHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-}
-
-void unmarshal_VkSubpassEndInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassEndInfoKHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-}
-
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void marshal_VkSharedPresentSurfaceCapabilitiesKHR(
@@ -6992,9 +8508,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_264;
-    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_264, 1);
-    vkStream->write((uint64_t*)&cgen_var_264, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
     vkStream->write((HANDLE*)&forMarshaling->handle, sizeof(HANDLE));
@@ -7007,9 +8523,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_265;
-    vkStream->read((uint64_t*)&cgen_var_265, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_265, (VkFence*)&forUnmarshaling->fence, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0, (VkFence*)&forUnmarshaling->fence, 1);
     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
     vkStream->read((HANDLE*)&forUnmarshaling->handle, sizeof(HANDLE));
@@ -7023,8 +8539,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     // WARNING PTR CHECK
-    uint64_t cgen_var_266 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    vkStream->putBe64(cgen_var_266);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pAttributes)
     {
         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
@@ -7060,9 +8576,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_268;
-    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_268, 1);
-    vkStream->write((uint64_t*)&cgen_var_268, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
 }
 
@@ -7072,9 +8588,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_269;
-    vkStream->read((uint64_t*)&cgen_var_269, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_269, (VkFence*)&forUnmarshaling->fence, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0, (VkFence*)&forUnmarshaling->fence, 1);
     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
 }
 
@@ -7086,9 +8602,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_270;
-    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_270, 1);
-    vkStream->write((uint64_t*)&cgen_var_270, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
     vkStream->write((int*)&forMarshaling->fd, sizeof(int));
@@ -7100,9 +8616,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_271;
-    vkStream->read((uint64_t*)&cgen_var_271, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_271, (VkFence*)&forUnmarshaling->fence, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0, (VkFence*)&forUnmarshaling->fence, 1);
     vkStream->read((VkFenceImportFlags*)&forUnmarshaling->flags, sizeof(VkFenceImportFlags));
     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
     vkStream->read((int*)&forUnmarshaling->fd, sizeof(int));
@@ -7114,9 +8630,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_272;
-    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_272, 1);
-    vkStream->write((uint64_t*)&cgen_var_272, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkFence_u64(&forMarshaling->fence, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
 }
 
@@ -7126,13 +8642,175 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_273;
-    vkStream->read((uint64_t*)&cgen_var_273, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_273, (VkFence*)&forUnmarshaling->fence, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkFence(&cgen_var_0, (VkFence*)&forUnmarshaling->fence, 1);
     vkStream->read((VkExternalFenceHandleTypeFlagBits*)&forUnmarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
 }
 
 #endif
+#ifdef VK_KHR_performance_query
+void marshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->performanceCounterQueryPools, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->performanceCounterMultipleQueryPools, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->performanceCounterQueryPools, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->performanceCounterMultipleQueryPools, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->allowCommandBufferQueryCopies, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->allowCommandBufferQueryCopies, sizeof(VkBool32));
+}
+
+void marshal_VkPerformanceCounterKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPerformanceCounterUnitKHR*)&forMarshaling->unit, sizeof(VkPerformanceCounterUnitKHR));
+    vkStream->write((VkPerformanceCounterScopeKHR*)&forMarshaling->scope, sizeof(VkPerformanceCounterScopeKHR));
+    vkStream->write((VkPerformanceCounterStorageKHR*)&forMarshaling->storage, sizeof(VkPerformanceCounterStorageKHR));
+    vkStream->write((uint8_t*)forMarshaling->uuid, VK_UUID_SIZE * sizeof(uint8_t));
+}
+
+void unmarshal_VkPerformanceCounterKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceCounterKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPerformanceCounterUnitKHR*)&forUnmarshaling->unit, sizeof(VkPerformanceCounterUnitKHR));
+    vkStream->read((VkPerformanceCounterScopeKHR*)&forUnmarshaling->scope, sizeof(VkPerformanceCounterScopeKHR));
+    vkStream->read((VkPerformanceCounterStorageKHR*)&forUnmarshaling->storage, sizeof(VkPerformanceCounterStorageKHR));
+    vkStream->read((uint8_t*)forUnmarshaling->uuid, VK_UUID_SIZE * sizeof(uint8_t));
+}
+
+void marshal_VkPerformanceCounterDescriptionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterDescriptionKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPerformanceCounterDescriptionFlagsKHR*)&forMarshaling->flags, sizeof(VkPerformanceCounterDescriptionFlagsKHR));
+    vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->category, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+}
+
+void unmarshal_VkPerformanceCounterDescriptionKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceCounterDescriptionKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPerformanceCounterDescriptionFlagsKHR*)&forUnmarshaling->flags, sizeof(VkPerformanceCounterDescriptionFlagsKHR));
+    vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->category, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+}
+
+void marshal_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceCreateInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->counterIndexCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pCounterIndices, forMarshaling->counterIndexCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkQueryPoolPerformanceCreateInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndex, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->counterIndexCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pCounterIndices, forUnmarshaling->counterIndexCount * sizeof(const uint32_t));
+}
+
+void marshal_VkPerformanceCounterResultKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterResultKHR* forMarshaling)
+{
+    vkStream->write((int32_t*)&forMarshaling->int32, sizeof(int32_t));
+}
+
+void unmarshal_VkPerformanceCounterResultKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceCounterResultKHR* forUnmarshaling)
+{
+    vkStream->read((int32_t*)&forUnmarshaling->int32, sizeof(int32_t));
+}
+
+void marshal_VkAcquireProfilingLockInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAcquireProfilingLockInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAcquireProfilingLockFlagsKHR*)&forMarshaling->flags, sizeof(VkAcquireProfilingLockFlagsKHR));
+    vkStream->write((uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
+}
+
+void unmarshal_VkAcquireProfilingLockInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAcquireProfilingLockInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAcquireProfilingLockFlagsKHR*)&forUnmarshaling->flags, sizeof(VkAcquireProfilingLockFlagsKHR));
+    vkStream->read((uint64_t*)&forUnmarshaling->timeout, sizeof(uint64_t));
+}
+
+void marshal_VkPerformanceQuerySubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceQuerySubmitInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->counterPassIndex, sizeof(uint32_t));
+}
+
+void unmarshal_VkPerformanceQuerySubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceQuerySubmitInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->counterPassIndex, sizeof(uint32_t));
+}
+
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -7142,9 +8820,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_274;
-    vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_274, 1);
-    vkStream->write((uint64_t*)&cgen_var_274, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkSurfaceKHR_u64(&forMarshaling->surface, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkPhysicalDeviceSurfaceInfo2KHR(
@@ -7153,9 +8831,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_275;
-    vkStream->read((uint64_t*)&cgen_var_275, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_275, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSurfaceKHR(&cgen_var_0, (VkSurfaceKHR*)&forUnmarshaling->surface, 1);
 }
 
 void marshal_VkSurfaceCapabilities2KHR(
@@ -7258,9 +8936,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_276;
-    vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->mode, &cgen_var_276, 1);
-    vkStream->write((uint64_t*)&cgen_var_276, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDisplayModeKHR_u64(&forMarshaling->mode, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
 }
 
@@ -7270,9 +8948,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_277;
-    vkStream->read((uint64_t*)&cgen_var_277, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_277, (VkDisplayModeKHR*)&forUnmarshaling->mode, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDisplayModeKHR(&cgen_var_0, (VkDisplayModeKHR*)&forUnmarshaling->mode, 1);
     vkStream->read((uint32_t*)&forUnmarshaling->planeIndex, sizeof(uint32_t));
 }
 
@@ -7304,78 +8982,931 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void marshal_VkImageFormatListCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkImageFormatListCreateInfoKHR* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
-    vkStream->write((const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
-}
-
-void unmarshal_VkImageFormatListCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkImageFormatListCreateInfoKHR* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->viewFormatCount, sizeof(uint32_t));
-    vkStream->read((VkFormat*)forUnmarshaling->pViewFormats, forUnmarshaling->viewFormatCount * sizeof(const VkFormat));
-}
-
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
 #endif
 #ifdef VK_KHR_bind_memory2
 #endif
+#ifdef VK_KHR_portability_subset
+void marshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->constantAlphaColorBlendFactors, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->events, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->imageViewFormatReinterpretation, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->imageViewFormatSwizzle, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->imageView2DOn3DImage, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->multisampleArrayImage, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->mutableComparisonSamplers, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->pointPolygons, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->samplerMipLodBias, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->separateStencilMaskRef, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSampleRateInterpolationFunctions, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->tessellationIsolines, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->tessellationPointMode, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->triangleFans, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->vertexAttributeAccessBeyondStride, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->constantAlphaColorBlendFactors, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->events, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->imageViewFormatReinterpretation, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->imageViewFormatSwizzle, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->imageView2DOn3DImage, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->multisampleArrayImage, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->mutableComparisonSamplers, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->pointPolygons, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->samplerMipLodBias, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->separateStencilMaskRef, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSampleRateInterpolationFunctions, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->tessellationIsolines, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->tessellationPointMode, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->triangleFans, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeAccessBeyondStride, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->minVertexInputBindingStrideAlignment, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->minVertexInputBindingStrideAlignment, sizeof(uint32_t));
+}
+
+#endif
 #ifdef VK_KHR_maintenance3
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
-void marshal_VkPhysicalDevice8BitStorageFeaturesKHR(
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+void marshal_VkPhysicalDeviceShaderClockFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling)
+    const VkPhysicalDeviceShaderClockFeaturesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSubgroupClock, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderDeviceClock, sizeof(VkBool32));
 }
 
-void unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
+void unmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling)
+    VkPhysicalDeviceShaderClockFeaturesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkBool32*)&forUnmarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->storagePushConstant8, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSubgroupClock, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDeviceClock, sizeof(VkBool32));
 }
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void marshal_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void marshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling)
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
 }
 
-void unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
+void unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceShaderFloat16Int8Features* forUnmarshaling)
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderFloat16, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderInt8, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderTerminateInvocation, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void marshal_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkFragmentShadingRateAttachmentInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pFragmentShadingRateAttachment));
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize));
+}
+
+void unmarshal_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkFragmentShadingRateAttachmentInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkAttachmentReference2(vkStream, (VkAttachmentReference2*)(forUnmarshaling->pFragmentShadingRateAttachment));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->shadingRateAttachmentTexelSize));
+}
+
+void marshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->fragmentSize));
+    vkStream->write((VkFragmentShadingRateCombinerOpKHR*)forMarshaling->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+}
+
+void unmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->fragmentSize));
+    vkStream->read((VkFragmentShadingRateCombinerOpKHR*)forUnmarshaling->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+}
+
+void marshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->pipelineFragmentShadingRate, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->primitiveFragmentShadingRate, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->attachmentFragmentShadingRate, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->pipelineFragmentShadingRate, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->primitiveFragmentShadingRate, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->attachmentFragmentShadingRate, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minFragmentShadingRateAttachmentTexelSize));
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxFragmentShadingRateAttachmentTexelSize));
+    vkStream->write((uint32_t*)&forMarshaling->maxFragmentShadingRateAttachmentTexelSizeAspectRatio, sizeof(uint32_t));
+    vkStream->write((VkBool32*)&forMarshaling->primitiveFragmentShadingRateWithMultipleViewports, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->layeredShadingRateAttachments, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateNonTrivialCombinerOps, sizeof(VkBool32));
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxFragmentSize));
+    vkStream->write((uint32_t*)&forMarshaling->maxFragmentSizeAspectRatio, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxFragmentShadingRateCoverageSamples, sizeof(uint32_t));
+    vkStream->write((VkSampleCountFlagBits*)&forMarshaling->maxFragmentShadingRateRasterizationSamples, sizeof(VkSampleCountFlagBits));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithShaderDepthStencilWrites, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithSampleMask, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithShaderSampleMask, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithConservativeRasterization, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithFragmentShaderInterlock, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateWithCustomSampleLocations, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateStrictMultiplyCombiner, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->minFragmentShadingRateAttachmentTexelSize));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxFragmentShadingRateAttachmentTexelSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentShadingRateAttachmentTexelSizeAspectRatio, sizeof(uint32_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->primitiveFragmentShadingRateWithMultipleViewports, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->layeredShadingRateAttachments, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateNonTrivialCombinerOps, sizeof(VkBool32));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->maxFragmentSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentSizeAspectRatio, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxFragmentShadingRateCoverageSamples, sizeof(uint32_t));
+    vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->maxFragmentShadingRateRasterizationSamples, sizeof(VkSampleCountFlagBits));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithShaderDepthStencilWrites, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithSampleMask, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithShaderSampleMask, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithConservativeRasterization, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithFragmentShaderInterlock, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateWithCustomSampleLocations, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateStrictMultiplyCombiner, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->fragmentSize));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSampleCountFlags*)&forUnmarshaling->sampleCounts, sizeof(VkSampleCountFlags));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->fragmentSize));
+}
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void marshal_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceProtectedCapabilitiesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->supportsProtected, sizeof(VkBool32));
+}
+
+void unmarshal_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceProtectedCapabilitiesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->supportsProtected, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->pipelineExecutableInfo, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->pipelineExecutableInfo, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+}
+
+void unmarshal_VkPipelineInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
+}
+
+void marshal_VkPipelineExecutablePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutablePropertiesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkShaderStageFlags*)&forMarshaling->stages, sizeof(VkShaderStageFlags));
+    vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
+}
+
+void unmarshal_VkPipelineExecutablePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutablePropertiesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stages, sizeof(VkShaderStageFlags));
+    vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((uint32_t*)&forUnmarshaling->subgroupSize, sizeof(uint32_t));
+}
+
+void marshal_VkPipelineExecutableInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->executableIndex, sizeof(uint32_t));
+}
+
+void unmarshal_VkPipelineExecutableInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->executableIndex, sizeof(uint32_t));
+}
+
+void marshal_VkPipelineExecutableStatisticValueKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticValueKHR* forMarshaling)
+{
+    vkStream->write((VkBool32*)&forMarshaling->b32, sizeof(VkBool32));
+}
+
+void unmarshal_VkPipelineExecutableStatisticValueKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableStatisticValueKHR* forUnmarshaling)
+{
+    vkStream->read((VkBool32*)&forUnmarshaling->b32, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineExecutableStatisticKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((VkPipelineExecutableStatisticFormatKHR*)&forMarshaling->format, sizeof(VkPipelineExecutableStatisticFormatKHR));
+    marshal_VkPipelineExecutableStatisticValueKHR(vkStream, (VkPipelineExecutableStatisticValueKHR*)(&forMarshaling->value));
+}
+
+void unmarshal_VkPipelineExecutableStatisticKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableStatisticKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((VkPipelineExecutableStatisticFormatKHR*)&forUnmarshaling->format, sizeof(VkPipelineExecutableStatisticFormatKHR));
+    unmarshal_VkPipelineExecutableStatisticValueKHR(vkStream, (VkPipelineExecutableStatisticValueKHR*)(&forUnmarshaling->value));
+}
+
+void marshal_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInternalRepresentationKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((VkBool32*)&forMarshaling->isText, sizeof(VkBool32));
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
+    vkStream->putBe64(cgen_var_0);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pData;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pData)
+    {
+        vkStream->write((void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(uint8_t));
+    }
+}
+
+void unmarshal_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableInternalRepresentationKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((char*)forUnmarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((VkBool32*)&forUnmarshaling->isText, sizeof(VkBool32));
+    forUnmarshaling->dataSize = (size_t)vkStream->getBe64();
+    // WARNING PTR CHECK
+    void* check_pData;
+    check_pData = (void*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pData)
+    {
+        if (!(check_pData))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pData inconsistent between guest and host\n");
+        }
+        vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(uint8_t));
+    }
+}
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void marshal_VkPipelineLibraryCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineLibraryCreateInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->libraryCount, sizeof(uint32_t));
+    if (forMarshaling->libraryCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->libraryCount * 8);
+        vkStream->handleMapping()->mapHandles_VkPipeline_u64(forMarshaling->pLibraries, cgen_var_0, forMarshaling->libraryCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->libraryCount * 8);
+    }
+}
+
+void unmarshal_VkPipelineLibraryCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineLibraryCreateInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->libraryCount, sizeof(uint32_t));
+    if (forUnmarshaling->libraryCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->libraryCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->libraryCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_0, (VkPipeline*)forUnmarshaling->pLibraries, forUnmarshaling->libraryCount);
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void marshal_VkBufferCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferCopy2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkBufferCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    VkBufferCopy2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->srcOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->dstOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+}
+
+void marshal_VkCopyBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferInfo2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->srcBuffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBuffer, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+        {
+            marshal_VkBufferCopy2KHR(vkStream, (const VkBufferCopy2KHR*)(forMarshaling->pRegions + i));
+        }
+    }
+}
+
+void unmarshal_VkCopyBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyBufferInfo2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->srcBuffer, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1, (VkBuffer*)&forUnmarshaling->dstBuffer, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i)
+        {
+            unmarshal_VkBufferCopy2KHR(vkStream, (VkBufferCopy2KHR*)(forUnmarshaling->pRegions + i));
+        }
+    }
+}
+
+void marshal_VkImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
+    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
+}
+
+void unmarshal_VkImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    VkImageCopy2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
+    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
+}
+
+void marshal_VkCopyImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageInfo2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+        {
+            marshal_VkImageCopy2KHR(vkStream, (const VkImageCopy2KHR*)(forMarshaling->pRegions + i));
+        }
+    }
+}
+
+void unmarshal_VkCopyImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyImageInfo2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->srcImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1, (VkImage*)&forUnmarshaling->dstImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i)
+        {
+            unmarshal_VkImageCopy2KHR(vkStream, (VkImageCopy2KHR*)(forUnmarshaling->pRegions + i));
+        }
+    }
+}
+
+void marshal_VkBufferImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferImageCopy2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
+    vkStream->write((uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->imageOffset));
+    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->imageExtent));
+}
+
+void unmarshal_VkBufferImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    VkBufferImageCopy2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->bufferOffset, sizeof(VkDeviceSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->bufferRowLength, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->bufferImageHeight, sizeof(uint32_t));
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->imageSubresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->imageOffset));
+    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->imageExtent));
+}
+
+void marshal_VkCopyBufferToImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferToImageInfo2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->srcBuffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+        {
+            marshal_VkBufferImageCopy2KHR(vkStream, (const VkBufferImageCopy2KHR*)(forMarshaling->pRegions + i));
+        }
+    }
+}
+
+void unmarshal_VkCopyBufferToImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyBufferToImageInfo2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->srcBuffer, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1, (VkImage*)&forUnmarshaling->dstImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i)
+        {
+            unmarshal_VkBufferImageCopy2KHR(vkStream, (VkBufferImageCopy2KHR*)(forUnmarshaling->pRegions + i));
+        }
+    }
+}
+
+void marshal_VkCopyImageToBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageToBufferInfo2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->dstBuffer, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+        {
+            marshal_VkBufferImageCopy2KHR(vkStream, (const VkBufferImageCopy2KHR*)(forMarshaling->pRegions + i));
+        }
+    }
+}
+
+void unmarshal_VkCopyImageToBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyImageToBufferInfo2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->srcImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1, (VkBuffer*)&forUnmarshaling->dstBuffer, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i)
+        {
+            unmarshal_VkBufferImageCopy2KHR(vkStream, (VkBufferImageCopy2KHR*)(forUnmarshaling->pRegions + i));
+        }
+    }
+}
+
+void marshal_VkImageBlit2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i));
+    }
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        marshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i));
+    }
+}
+
+void unmarshal_VkImageBlit2KHR(
+    VulkanStreamGuest* vkStream,
+    VkImageBlit2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->srcOffsets + i));
+    }
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forUnmarshaling->dstOffsets + i));
+    }
+}
+
+void marshal_VkBlitImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBlitImageInfo2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+        {
+            marshal_VkImageBlit2KHR(vkStream, (const VkImageBlit2KHR*)(forMarshaling->pRegions + i));
+        }
+    }
+    vkStream->write((VkFilter*)&forMarshaling->filter, sizeof(VkFilter));
+}
+
+void unmarshal_VkBlitImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkBlitImageInfo2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->srcImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1, (VkImage*)&forUnmarshaling->dstImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i)
+        {
+            unmarshal_VkImageBlit2KHR(vkStream, (VkImageBlit2KHR*)(forUnmarshaling->pRegions + i));
+        }
+    }
+    vkStream->read((VkFilter*)&forUnmarshaling->filter, sizeof(VkFilter));
+}
+
+void marshal_VkImageResolve2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageResolve2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset));
+    marshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource));
+    marshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset));
+    marshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent));
+}
+
+void unmarshal_VkImageResolve2KHR(
+    VulkanStreamGuest* vkStream,
+    VkImageResolve2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->srcSubresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->srcOffset));
+    unmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forUnmarshaling->dstSubresource));
+    unmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forUnmarshaling->dstOffset));
+    unmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forUnmarshaling->extent));
+}
+
+void marshal_VkResolveImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkResolveImageInfo2KHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->srcImage, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->dstImage, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->write((uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+        {
+            marshal_VkImageResolve2KHR(vkStream, (const VkImageResolve2KHR*)(forMarshaling->pRegions + i));
+        }
+    }
+}
+
+void unmarshal_VkResolveImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkResolveImageInfo2KHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->srcImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->srcImageLayout, sizeof(VkImageLayout));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_1, (VkImage*)&forUnmarshaling->dstImage, 1);
+    vkStream->read((VkImageLayout*)&forUnmarshaling->dstImageLayout, sizeof(VkImageLayout));
+    vkStream->read((uint32_t*)&forUnmarshaling->regionCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->regionCount; ++i)
+        {
+            unmarshal_VkImageResolve2KHR(vkStream, (VkImageResolve2KHR*)(forUnmarshaling->pRegions + i));
+        }
+    }
 }
 
 #endif
@@ -7387,8 +9918,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     // WARNING PTR CHECK
-    uint64_t cgen_var_278 = (uint64_t)(uintptr_t)forMarshaling->handle;
-    vkStream->putBe64(cgen_var_278);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->handle;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->handle)
     {
         vkStream->write((const uint32_t*)forMarshaling->handle, sizeof(const uint32_t));
@@ -7433,11 +9964,11 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkDebugReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugReportFlagsEXT));
-    uint64_t cgen_var_280 = (uint64_t)forMarshaling->pfnCallback;
-    vkStream->putBe64(cgen_var_280);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnCallback;
+    vkStream->putBe64(cgen_var_0);
     // WARNING PTR CHECK
-    uint64_t cgen_var_281 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    vkStream->putBe64(cgen_var_281);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pUserData)
     {
         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
@@ -7528,8 +10059,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_284 = (uint64_t)forMarshaling->tagSize;
-    vkStream->putBe64(cgen_var_284);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->tagSize;
+    vkStream->putBe64(cgen_var_0);
     vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
 }
 
@@ -7612,12 +10143,12 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_286;
-    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_286, 1);
-    vkStream->write((uint64_t*)&cgen_var_286, 1 * 8);
-    uint64_t cgen_var_287;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_287, 1);
-    vkStream->write((uint64_t*)&cgen_var_287, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImage_u64(&forMarshaling->image, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
 }
 
 void unmarshal_VkDedicatedAllocationMemoryAllocateInfoNV(
@@ -7626,12 +10157,142 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_288;
-    vkStream->read((uint64_t*)&cgen_var_288, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_288, (VkImage*)&forUnmarshaling->image, 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);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImage(&cgen_var_0, (VkImage*)&forUnmarshaling->image, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1, (VkBuffer*)&forUnmarshaling->buffer, 1);
+}
+
+#endif
+#ifdef VK_EXT_transform_feedback
+void marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->transformFeedback, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->geometryStreams, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->transformFeedback, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->geometryStreams, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
+    vkStream->write((VkDeviceSize*)&forMarshaling->maxTransformFeedbackBufferSize, sizeof(VkDeviceSize));
+    vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackStreamDataSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataStride, sizeof(uint32_t));
+    vkStream->write((VkBool32*)&forMarshaling->transformFeedbackQueries, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->transformFeedbackStreamsLinesTriangles, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->transformFeedbackRasterizationStreamSelect, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->transformFeedbackDraw, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->maxTransformFeedbackBufferSize, sizeof(VkDeviceSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackStreamDataSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTransformFeedbackBufferDataStride, sizeof(uint32_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackQueries, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackStreamsLinesTriangles, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackRasterizationStreamSelect, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->transformFeedbackDraw, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
+    vkStream->write((uint32_t*)&forMarshaling->rasterizationStream, sizeof(uint32_t));
+}
+
+void unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
+    vkStream->read((uint32_t*)&forUnmarshaling->rasterizationStream, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void marshal_VkImageViewHandleInfoNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewHandleInfoNVX* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkImageView_u64(&forMarshaling->imageView, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkSampler_u64(&forMarshaling->sampler, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+}
+
+void unmarshal_VkImageViewHandleInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkImageViewHandleInfoNVX* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkImageView(&cgen_var_0, (VkImageView*)&forUnmarshaling->imageView, 1);
+    vkStream->read((VkDescriptorType*)&forUnmarshaling->descriptorType, sizeof(VkDescriptorType));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkSampler(&cgen_var_1, (VkSampler*)&forUnmarshaling->sampler, 1);
+}
+
+void marshal_VkImageViewAddressPropertiesNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewAddressPropertiesNVX* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkImageViewAddressPropertiesNVX(
+    VulkanStreamGuest* vkStream,
+    VkImageViewAddressPropertiesNVX* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
 }
 
 #endif
@@ -7671,10 +10332,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_290 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
-    vkStream->putBe64(cgen_var_290);
-    uint64_t cgen_var_291 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
-    vkStream->putBe64(cgen_var_291);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
+    vkStream->putBe64(cgen_var_0);
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
+    vkStream->putBe64(cgen_var_1);
 }
 
 void unmarshal_VkShaderResourceUsageAMD(
@@ -7717,6 +10378,48 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void marshal_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanStreamGuest* vkStream,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkStreamDescriptorSurfaceCreateFlagsGGP*)&forMarshaling->flags, sizeof(VkStreamDescriptorSurfaceCreateFlagsGGP));
+    vkStream->write((GgpStreamDescriptor*)&forMarshaling->streamDescriptor, sizeof(GgpStreamDescriptor));
+}
+
+void unmarshal_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanStreamGuest* vkStream,
+    VkStreamDescriptorSurfaceCreateInfoGGP* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkStreamDescriptorSurfaceCreateFlagsGGP*)&forUnmarshaling->flags, sizeof(VkStreamDescriptorSurfaceCreateFlagsGGP));
+    vkStream->read((GgpStreamDescriptor*)&forUnmarshaling->streamDescriptor, sizeof(GgpStreamDescriptor));
+}
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void marshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->cornerSampledImage, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->cornerSampledImage, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -7807,8 +10510,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     // WARNING PTR CHECK
-    uint64_t cgen_var_294 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    vkStream->putBe64(cgen_var_294);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pAttributes)
     {
         vkStream->write((const SECURITY_ATTRIBUTES*)forMarshaling->pAttributes, sizeof(const SECURITY_ATTRIBUTES));
@@ -7847,20 +10550,20 @@
     vkStream->write((uint32_t*)&forMarshaling->acquireCount, sizeof(uint32_t));
     if (forMarshaling->acquireCount)
     {
-        uint64_t* cgen_var_296;
-        vkStream->alloc((void**)&cgen_var_296, forMarshaling->acquireCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_296, forMarshaling->acquireCount);
-        vkStream->write((uint64_t*)cgen_var_296, forMarshaling->acquireCount * 8);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->acquireCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pAcquireSyncs, cgen_var_0, forMarshaling->acquireCount);
+        vkStream->write((uint64_t*)cgen_var_0, 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_297;
-        vkStream->alloc((void**)&cgen_var_297, forMarshaling->releaseCount * 8);
-        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_297, forMarshaling->releaseCount);
-        vkStream->write((uint64_t*)cgen_var_297, forMarshaling->releaseCount * 8);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forMarshaling->releaseCount * 8);
+        vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(forMarshaling->pReleaseSyncs, cgen_var_1, forMarshaling->releaseCount);
+        vkStream->write((uint64_t*)cgen_var_1, forMarshaling->releaseCount * 8);
     }
     vkStream->write((const uint64_t*)forMarshaling->pReleaseKeys, forMarshaling->releaseCount * sizeof(const uint64_t));
 }
@@ -7874,20 +10577,20 @@
     vkStream->read((uint32_t*)&forUnmarshaling->acquireCount, sizeof(uint32_t));
     if (forUnmarshaling->acquireCount)
     {
-        uint64_t* cgen_var_298;
-        vkStream->alloc((void**)&cgen_var_298, forUnmarshaling->acquireCount * 8);
-        vkStream->read((uint64_t*)cgen_var_298, forUnmarshaling->acquireCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_298, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->acquireCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->acquireCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_0, (VkDeviceMemory*)forUnmarshaling->pAcquireSyncs, forUnmarshaling->acquireCount);
     }
     vkStream->read((uint64_t*)forUnmarshaling->pAcquireKeys, forUnmarshaling->acquireCount * sizeof(const uint64_t));
     vkStream->read((uint32_t*)forUnmarshaling->pAcquireTimeoutMilliseconds, forUnmarshaling->acquireCount * sizeof(const uint32_t));
     vkStream->read((uint32_t*)&forUnmarshaling->releaseCount, sizeof(uint32_t));
     if (forUnmarshaling->releaseCount)
     {
-        uint64_t* cgen_var_299;
-        vkStream->alloc((void**)&cgen_var_299, forUnmarshaling->releaseCount * 8);
-        vkStream->read((uint64_t*)cgen_var_299, forUnmarshaling->releaseCount * 8);
-        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_299, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
+        uint64_t* cgen_var_1;
+        vkStream->alloc((void**)&cgen_var_1, forUnmarshaling->releaseCount * 8);
+        vkStream->read((uint64_t*)cgen_var_1, forUnmarshaling->releaseCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(cgen_var_1, (VkDeviceMemory*)forUnmarshaling->pReleaseSyncs, forUnmarshaling->releaseCount);
     }
     vkStream->read((uint64_t*)forUnmarshaling->pReleaseKeys, forUnmarshaling->releaseCount * sizeof(const uint64_t));
 }
@@ -7924,8 +10627,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkViSurfaceCreateFlagsNN*)&forMarshaling->flags, sizeof(VkViSurfaceCreateFlagsNN));
     // WARNING PTR CHECK
-    uint64_t cgen_var_300 = (uint64_t)(uintptr_t)forMarshaling->window;
-    vkStream->putBe64(cgen_var_300);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->window;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->window)
     {
         vkStream->write((void*)forMarshaling->window, sizeof(uint8_t));
@@ -7957,6 +10660,64 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void marshal_VkImageViewASTCDecodeModeEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewASTCDecodeModeEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkFormat*)&forMarshaling->decodeMode, sizeof(VkFormat));
+}
+
+void unmarshal_VkImageViewASTCDecodeModeEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageViewASTCDecodeModeEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFormat*)&forUnmarshaling->decodeMode, sizeof(VkFormat));
+}
+
+void marshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->decodeModeSharedExponent, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->decodeModeSharedExponent, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void marshal_VkConditionalRenderingBeginInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -7964,9 +10725,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_302;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_302, 1);
-    vkStream->write((uint64_t*)&cgen_var_302, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
     vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
     vkStream->write((VkConditionalRenderingFlagsEXT*)&forMarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
 }
@@ -7977,9 +10738,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_303;
-    vkStream->read((uint64_t*)&cgen_var_303, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_303, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
     vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
     vkStream->read((VkConditionalRenderingFlagsEXT*)&forUnmarshaling->flags, sizeof(VkConditionalRenderingFlagsEXT));
 }
@@ -8023,386 +10784,6 @@
 }
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkBool32*)&forMarshaling->computeBindingPointSupport, sizeof(VkBool32));
-}
-
-void unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStreamGuest* vkStream,
-    VkDeviceGeneratedCommandsFeaturesNVX* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkBool32*)&forUnmarshaling->computeBindingPointSupport, sizeof(VkBool32));
-}
-
-void marshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsLayoutTokenCount, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxObjectEntryCounts, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->minSequenceCountBufferOffsetAlignment, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->minSequenceIndexBufferOffsetAlignment, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->minCommandsTokenBufferOffsetAlignment, sizeof(uint32_t));
-}
-
-void unmarshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStreamGuest* vkStream,
-    VkDeviceGeneratedCommandsLimitsNVX* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsLayoutTokenCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxObjectEntryCounts, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->minSequenceCountBufferOffsetAlignment, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->minSequenceIndexBufferOffsetAlignment, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->minCommandsTokenBufferOffsetAlignment, sizeof(uint32_t));
-}
-
-void marshal_VkIndirectCommandsTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsTokenNVX* forMarshaling)
-{
-    vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    uint64_t cgen_var_304;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_304, 1);
-    vkStream->write((uint64_t*)&cgen_var_304, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-}
-
-void unmarshal_VkIndirectCommandsTokenNVX(
-    VulkanStreamGuest* vkStream,
-    VkIndirectCommandsTokenNVX* forUnmarshaling)
-{
-    vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    uint64_t cgen_var_305;
-    vkStream->read((uint64_t*)&cgen_var_305, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_305, (VkBuffer*)&forUnmarshaling->buffer, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
-}
-
-void marshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutTokenNVX* forMarshaling)
-{
-    vkStream->write((VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    vkStream->write((uint32_t*)&forMarshaling->bindingUnit, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->dynamicCount, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
-}
-
-void unmarshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStreamGuest* vkStream,
-    VkIndirectCommandsLayoutTokenNVX* forUnmarshaling)
-{
-    vkStream->read((VkIndirectCommandsTokenTypeNVX*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    vkStream->read((uint32_t*)&forUnmarshaling->bindingUnit, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->dynamicCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->divisor, sizeof(uint32_t));
-}
-
-void marshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    vkStream->write((VkIndirectCommandsLayoutUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNVX));
-    vkStream->write((uint32_t*)&forMarshaling->tokenCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->tokenCount; ++i)
-    {
-        marshal_VkIndirectCommandsLayoutTokenNVX(vkStream, (const VkIndirectCommandsLayoutTokenNVX*)(forMarshaling->pTokens + i));
-    }
-}
-
-void unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkIndirectCommandsLayoutCreateInfoNVX* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    vkStream->read((VkIndirectCommandsLayoutUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNVX));
-    vkStream->read((uint32_t*)&forUnmarshaling->tokenCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->tokenCount; ++i)
-    {
-        unmarshal_VkIndirectCommandsLayoutTokenNVX(vkStream, (VkIndirectCommandsLayoutTokenNVX*)(forUnmarshaling->pTokens + i));
-    }
-}
-
-void marshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdProcessCommandsInfoNVX* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_306;
-    vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_306, 1);
-    vkStream->write((uint64_t*)&cgen_var_306, 1 * 8);
-    uint64_t cgen_var_307;
-    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_307, 1);
-    vkStream->write((uint64_t*)&cgen_var_307, 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_308;
-    vkStream->handleMapping()->mapHandles_VkCommandBuffer_u64(&forMarshaling->targetCommandBuffer, &cgen_var_308, 1);
-    vkStream->write((uint64_t*)&cgen_var_308, 1 * 8);
-    uint64_t cgen_var_309;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesCountBuffer, &cgen_var_309, 1);
-    vkStream->write((uint64_t*)&cgen_var_309, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
-    uint64_t cgen_var_310;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesIndexBuffer, &cgen_var_310, 1);
-    vkStream->write((uint64_t*)&cgen_var_310, 1 * 8);
-    vkStream->write((VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
-}
-
-void unmarshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkCmdProcessCommandsInfoNVX* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_311;
-    vkStream->read((uint64_t*)&cgen_var_311, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_311, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
-    uint64_t cgen_var_312;
-    vkStream->read((uint64_t*)&cgen_var_312, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_312, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->indirectCommandsTokenCount; ++i)
-    {
-        unmarshal_VkIndirectCommandsTokenNVX(vkStream, (VkIndirectCommandsTokenNVX*)(forUnmarshaling->pIndirectCommandsTokens + i));
-    }
-    vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
-    uint64_t cgen_var_313;
-    vkStream->read((uint64_t*)&cgen_var_313, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkCommandBuffer(&cgen_var_313, (VkCommandBuffer*)&forUnmarshaling->targetCommandBuffer, 1);
-    uint64_t cgen_var_314;
-    vkStream->read((uint64_t*)&cgen_var_314, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_314, (VkBuffer*)&forUnmarshaling->sequencesCountBuffer, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
-    uint64_t cgen_var_315;
-    vkStream->read((uint64_t*)&cgen_var_315, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_315, (VkBuffer*)&forUnmarshaling->sequencesIndexBuffer, 1);
-    vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
-}
-
-void marshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_316;
-    vkStream->handleMapping()->mapHandles_VkObjectTableNVX_u64(&forMarshaling->objectTable, &cgen_var_316, 1);
-    vkStream->write((uint64_t*)&cgen_var_316, 1 * 8);
-    uint64_t cgen_var_317;
-    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNVX_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_317, 1);
-    vkStream->write((uint64_t*)&cgen_var_317, 1 * 8);
-    vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
-}
-
-void unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkCmdReserveSpaceForCommandsInfoNVX* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_318;
-    vkStream->read((uint64_t*)&cgen_var_318, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkObjectTableNVX(&cgen_var_318, (VkObjectTableNVX*)&forUnmarshaling->objectTable, 1);
-    uint64_t cgen_var_319;
-    vkStream->read((uint64_t*)&cgen_var_319, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNVX(&cgen_var_319, (VkIndirectCommandsLayoutNVX*)&forUnmarshaling->indirectCommandsLayout, 1);
-    vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
-}
-
-void marshal_VkObjectTableCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableCreateInfoNVX* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
-    vkStream->write((const VkObjectEntryTypeNVX*)forMarshaling->pObjectEntryTypes, forMarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX));
-    vkStream->write((const uint32_t*)forMarshaling->pObjectEntryCounts, forMarshaling->objectCount * sizeof(const uint32_t));
-    vkStream->write((const VkObjectEntryUsageFlagsNVX*)forMarshaling->pObjectEntryUsageFlags, forMarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
-    vkStream->write((uint32_t*)&forMarshaling->maxUniformBuffersPerDescriptor, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxStorageBuffersPerDescriptor, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxStorageImagesPerDescriptor, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxSampledImagesPerDescriptor, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxPipelineLayouts, sizeof(uint32_t));
-}
-
-void unmarshal_VkObjectTableCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableCreateInfoNVX* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->objectCount, sizeof(uint32_t));
-    vkStream->read((VkObjectEntryTypeNVX*)forUnmarshaling->pObjectEntryTypes, forUnmarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX));
-    vkStream->read((uint32_t*)forUnmarshaling->pObjectEntryCounts, forUnmarshaling->objectCount * sizeof(const uint32_t));
-    vkStream->read((VkObjectEntryUsageFlagsNVX*)forUnmarshaling->pObjectEntryUsageFlags, forUnmarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxUniformBuffersPerDescriptor, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxStorageBuffersPerDescriptor, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxStorageImagesPerDescriptor, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxSampledImagesPerDescriptor, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineLayouts, sizeof(uint32_t));
-}
-
-void marshal_VkObjectTableEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableEntryNVX* forMarshaling)
-{
-    vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-}
-
-void unmarshal_VkObjectTableEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableEntryNVX* forUnmarshaling)
-{
-    vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-}
-
-void marshal_VkObjectTablePipelineEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePipelineEntryNVX* forMarshaling)
-{
-    vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_320;
-    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_320, 1);
-    vkStream->write((uint64_t*)&cgen_var_320, 1 * 8);
-}
-
-void unmarshal_VkObjectTablePipelineEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTablePipelineEntryNVX* forUnmarshaling)
-{
-    vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_321;
-    vkStream->read((uint64_t*)&cgen_var_321, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_321, (VkPipeline*)&forUnmarshaling->pipeline, 1);
-}
-
-void marshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableDescriptorSetEntryNVX* forMarshaling)
-{
-    vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_322;
-    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_322, 1);
-    vkStream->write((uint64_t*)&cgen_var_322, 1 * 8);
-    uint64_t cgen_var_323;
-    vkStream->handleMapping()->mapHandles_VkDescriptorSet_u64(&forMarshaling->descriptorSet, &cgen_var_323, 1);
-    vkStream->write((uint64_t*)&cgen_var_323, 1 * 8);
-}
-
-void unmarshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableDescriptorSetEntryNVX* forUnmarshaling)
-{
-    vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_324;
-    vkStream->read((uint64_t*)&cgen_var_324, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_324, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
-    uint64_t cgen_var_325;
-    vkStream->read((uint64_t*)&cgen_var_325, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDescriptorSet(&cgen_var_325, (VkDescriptorSet*)&forUnmarshaling->descriptorSet, 1);
-}
-
-void marshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableVertexBufferEntryNVX* forMarshaling)
-{
-    vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_326;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_326, 1);
-    vkStream->write((uint64_t*)&cgen_var_326, 1 * 8);
-}
-
-void unmarshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableVertexBufferEntryNVX* forUnmarshaling)
-{
-    vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_327;
-    vkStream->read((uint64_t*)&cgen_var_327, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_327, (VkBuffer*)&forUnmarshaling->buffer, 1);
-}
-
-void marshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableIndexBufferEntryNVX* forMarshaling)
-{
-    vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_328;
-    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_328, 1);
-    vkStream->write((uint64_t*)&cgen_var_328, 1 * 8);
-    vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
-}
-
-void unmarshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableIndexBufferEntryNVX* forUnmarshaling)
-{
-    vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_329;
-    vkStream->read((uint64_t*)&cgen_var_329, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_329, (VkBuffer*)&forUnmarshaling->buffer, 1);
-    vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
-}
-
-void marshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePushConstantEntryNVX* forMarshaling)
-{
-    vkStream->write((VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->write((VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_330;
-    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pipelineLayout, &cgen_var_330, 1);
-    vkStream->write((uint64_t*)&cgen_var_330, 1 * 8);
-    vkStream->write((VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
-}
-
-void unmarshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTablePushConstantEntryNVX* forUnmarshaling)
-{
-    vkStream->read((VkObjectEntryTypeNVX*)&forUnmarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    vkStream->read((VkObjectEntryUsageFlagsNVX*)&forUnmarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    uint64_t cgen_var_331;
-    vkStream->read((uint64_t*)&cgen_var_331, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_331, (VkPipelineLayout*)&forUnmarshaling->pipelineLayout, 1);
-    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->stageFlags, sizeof(VkShaderStageFlags));
-}
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void marshal_VkViewportWScalingNV(
     VulkanStreamGuest* vkStream,
@@ -8429,13 +10810,16 @@
     vkStream->write((VkBool32*)&forMarshaling->viewportWScalingEnable, sizeof(VkBool32));
     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_332 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
-    vkStream->putBe64(cgen_var_332);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pViewportWScalings)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkViewportWScalingNV(vkStream, (const VkViewportWScalingNV*)(forMarshaling->pViewportWScalings + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+            {
+                marshal_VkViewportWScalingNV(vkStream, (const VkViewportWScalingNV*)(forMarshaling->pViewportWScalings + i));
+            }
         }
     }
 }
@@ -8457,9 +10841,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pViewportWScalings inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkViewportWScalingNV(vkStream, (VkViewportWScalingNV*)(forUnmarshaling->pViewportWScalings + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
+            {
+                unmarshal_VkViewportWScalingNV(vkStream, (VkViewportWScalingNV*)(forUnmarshaling->pViewportWScalings + i));
+            }
         }
     }
 }
@@ -8644,13 +11031,16 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_334 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
-    vkStream->putBe64(cgen_var_334);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pTimes)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkPresentTimeGOOGLE(vkStream, (const VkPresentTimeGOOGLE*)(forMarshaling->pTimes + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->swapchainCount; ++i)
+            {
+                marshal_VkPresentTimeGOOGLE(vkStream, (const VkPresentTimeGOOGLE*)(forMarshaling->pTimes + i));
+            }
         }
     }
 }
@@ -8671,9 +11061,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pTimes inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkPresentTimeGOOGLE(vkStream, (VkPresentTimeGOOGLE*)(forUnmarshaling->pTimes + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->swapchainCount; ++i)
+            {
+                unmarshal_VkPresentTimeGOOGLE(vkStream, (VkPresentTimeGOOGLE*)(forUnmarshaling->pTimes + i));
+            }
         }
     }
 }
@@ -8735,13 +11128,16 @@
     vkStream->write((VkPipelineViewportSwizzleStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineViewportSwizzleStateCreateFlagsNV));
     vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_336 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
-    vkStream->putBe64(cgen_var_336);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pViewportSwizzles)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkViewportSwizzleNV(vkStream, (const VkViewportSwizzleNV*)(forMarshaling->pViewportSwizzles + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+            {
+                marshal_VkViewportSwizzleNV(vkStream, (const VkViewportSwizzleNV*)(forMarshaling->pViewportSwizzles + i));
+            }
         }
     }
 }
@@ -8763,9 +11159,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pViewportSwizzles inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkViewportSwizzleNV(vkStream, (VkViewportSwizzleNV*)(forUnmarshaling->pViewportSwizzles + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
+            {
+                unmarshal_VkViewportSwizzleNV(vkStream, (VkViewportSwizzleNV*)(forUnmarshaling->pViewportSwizzles + i));
+            }
         }
     }
 }
@@ -8800,13 +11199,16 @@
     vkStream->write((VkDiscardRectangleModeEXT*)&forMarshaling->discardRectangleMode, sizeof(VkDiscardRectangleModeEXT));
     vkStream->write((uint32_t*)&forMarshaling->discardRectangleCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_338 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
-    vkStream->putBe64(cgen_var_338);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pDiscardRectangles)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->discardRectangleCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDiscardRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->discardRectangleCount; ++i)
+            {
+                marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pDiscardRectangles + i));
+            }
         }
     }
 }
@@ -8829,9 +11231,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pDiscardRectangles inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->discardRectangleCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDiscardRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->discardRectangleCount; ++i)
+            {
+                unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pDiscardRectangles + i));
+            }
         }
     }
 }
@@ -8895,6 +11300,46 @@
 }
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
+    vkStream->write((VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
+}
+
+void unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
+    vkStream->read((VkBool32*)&forUnmarshaling->depthClipEnable, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -8956,8 +11401,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkIOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkIOSSurfaceCreateFlagsMVK));
     // WARNING PTR CHECK
-    uint64_t cgen_var_340 = (uint64_t)(uintptr_t)forMarshaling->pView;
-    vkStream->putBe64(cgen_var_340);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pView;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pView)
     {
         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
@@ -8994,8 +11439,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkMacOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkMacOSSurfaceCreateFlagsMVK));
     // WARNING PTR CHECK
-    uint64_t cgen_var_342 = (uint64_t)(uintptr_t)forMarshaling->pView;
-    vkStream->putBe64(cgen_var_342);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pView;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pView)
     {
         vkStream->write((const void*)forMarshaling->pView, sizeof(const uint8_t));
@@ -9023,11 +11468,33 @@
 }
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
+void marshal_VkDebugUtilsLabelEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsLabelEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->putString(forMarshaling->pLabelName);
+    vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
+}
+
+void unmarshal_VkDebugUtilsLabelEXT(
+    VulkanStreamGuest* vkStream,
+    VkDebugUtilsLabelEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->loadStringInPlace((char**)&forUnmarshaling->pLabelName);
+    vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
+}
+
 void marshal_VkDebugUtilsObjectNameInfoEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsObjectNameInfoEXT* forMarshaling)
@@ -9039,8 +11506,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_344 = (uint64_t)(uintptr_t)forMarshaling->pObjectName;
-        vkStream->putBe64(cgen_var_344);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pObjectName;
+        vkStream->putBe64(cgen_var_0);
         if (forMarshaling->pObjectName)
         {
             vkStream->putString(forMarshaling->pObjectName);
@@ -9080,53 +11547,6 @@
     }
 }
 
-void marshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsObjectTagInfoEXT* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    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_346 = (uint64_t)forMarshaling->tagSize;
-    vkStream->putBe64(cgen_var_346);
-    vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
-}
-
-void unmarshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStreamGuest* vkStream,
-    VkDebugUtilsObjectTagInfoEXT* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
-    vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
-    vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
-    forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
-    vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
-}
-
-void marshal_VkDebugUtilsLabelEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsLabelEXT* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->putString(forMarshaling->pLabelName);
-    vkStream->write((float*)forMarshaling->color, 4 * sizeof(float));
-}
-
-void unmarshal_VkDebugUtilsLabelEXT(
-    VulkanStreamGuest* vkStream,
-    VkDebugUtilsLabelEXT* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->loadStringInPlace((char**)&forUnmarshaling->pLabelName);
-    vkStream->read((float*)forUnmarshaling->color, 4 * sizeof(float));
-}
-
 void marshal_VkDebugUtilsMessengerCallbackDataEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling)
@@ -9137,8 +11557,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_348 = (uint64_t)(uintptr_t)forMarshaling->pMessageIdName;
-        vkStream->putBe64(cgen_var_348);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pMessageIdName;
+        vkStream->putBe64(cgen_var_0);
         if (forMarshaling->pMessageIdName)
         {
             vkStream->putString(forMarshaling->pMessageIdName);
@@ -9152,35 +11572,44 @@
     vkStream->putString(forMarshaling->pMessage);
     vkStream->write((uint32_t*)&forMarshaling->queueLabelCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_349 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
-    vkStream->putBe64(cgen_var_349);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pQueueLabels)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueLabelCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pQueueLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->queueLabelCount; ++i)
+            {
+                marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pQueueLabels + i));
+            }
         }
     }
     vkStream->write((uint32_t*)&forMarshaling->cmdBufLabelCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_350 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
-    vkStream->putBe64(cgen_var_350);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pCmdBufLabels)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->cmdBufLabelCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pCmdBufLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->cmdBufLabelCount; ++i)
+            {
+                marshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forMarshaling->pCmdBufLabels + i));
+            }
         }
     }
     vkStream->write((uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_351 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
-    vkStream->putBe64(cgen_var_351);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
+    vkStream->putBe64(cgen_var_2);
     if (forMarshaling->pObjects)
     {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->objectCount; ++i)
+        if ((forMarshaling) != nullptr)
         {
-            marshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forMarshaling->pObjects + i));
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->objectCount; ++i)
+            {
+                marshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forMarshaling->pObjects + i));
+            }
         }
     }
 }
@@ -9222,9 +11651,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pQueueLabels inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueLabelCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pQueueLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->queueLabelCount; ++i)
+            {
+                unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pQueueLabels + i));
+            }
         }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->cmdBufLabelCount, sizeof(uint32_t));
@@ -9237,9 +11669,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pCmdBufLabels inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->cmdBufLabelCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pCmdBufLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->cmdBufLabelCount; ++i)
+            {
+                unmarshal_VkDebugUtilsLabelEXT(vkStream, (VkDebugUtilsLabelEXT*)(forUnmarshaling->pCmdBufLabels + i));
+            }
         }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->objectCount, sizeof(uint32_t));
@@ -9252,9 +11687,12 @@
         {
             fprintf(stderr, "fatal: forUnmarshaling->pObjects inconsistent between guest and host\n");
         }
-        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->objectCount; ++i)
+        if ((forUnmarshaling) != nullptr)
         {
-            unmarshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forUnmarshaling->pObjects + i));
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->objectCount; ++i)
+            {
+                unmarshal_VkDebugUtilsObjectNameInfoEXT(vkStream, (VkDebugUtilsObjectNameInfoEXT*)(forUnmarshaling->pObjects + i));
+            }
         }
     }
 }
@@ -9268,11 +11706,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_356 = (uint64_t)forMarshaling->pfnUserCallback;
-    vkStream->putBe64(cgen_var_356);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
+    vkStream->putBe64(cgen_var_0);
     // WARNING PTR CHECK
-    uint64_t cgen_var_357 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    vkStream->putBe64(cgen_var_357);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    vkStream->putBe64(cgen_var_1);
     if (forMarshaling->pUserData)
     {
         vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
@@ -9302,6 +11740,33 @@
     }
 }
 
+void marshal_VkDebugUtilsObjectTagInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsObjectTagInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    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_0 = (uint64_t)forMarshaling->tagSize;
+    vkStream->putBe64(cgen_var_0);
+    vkStream->write((const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
+}
+
+void unmarshal_VkDebugUtilsObjectTagInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDebugUtilsObjectTagInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
+    vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->tagName, sizeof(uint64_t));
+    forUnmarshaling->tagSize = (size_t)vkStream->getBe64();
+    vkStream->read((void*)forUnmarshaling->pTag, forUnmarshaling->tagSize * sizeof(const uint8_t));
+}
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void marshal_VkAndroidHardwareBufferUsageANDROID(
@@ -9398,9 +11863,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_360;
-    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_360, 1);
-    vkStream->write((uint64_t*)&cgen_var_360, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkMemoryGetAndroidHardwareBufferInfoANDROID(
@@ -9409,9 +11874,9 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_361;
-    vkStream->read((uint64_t*)&cgen_var_361, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_361, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_0, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
 }
 
 void marshal_VkExternalFormatANDROID(
@@ -9434,44 +11899,6 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void marshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkSamplerReductionModeCreateInfoEXT* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkSamplerReductionModeEXT*)&forMarshaling->reductionMode, sizeof(VkSamplerReductionModeEXT));
-}
-
-void unmarshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    VkSamplerReductionModeCreateInfoEXT* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkSamplerReductionModeEXT*)&forUnmarshaling->reductionMode, sizeof(VkSamplerReductionModeEXT));
-}
-
-void marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
-}
-
-void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
-}
-
 #endif
 #ifdef VK_AMD_gpu_shader_int16
 #endif
@@ -9479,6 +11906,92 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void marshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->inlineUniformBlock, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorInlineUniformBlocks, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetInlineUniformBlocks, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks, sizeof(uint32_t));
+}
+
+void marshal_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->dataSize, sizeof(uint32_t));
+    vkStream->write((const void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(const uint8_t));
+}
+
+void unmarshal_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanStreamGuest* vkStream,
+    VkWriteDescriptorSetInlineUniformBlockEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->dataSize, sizeof(uint32_t));
+    vkStream->read((void*)forUnmarshaling->pData, forUnmarshaling->dataSize * sizeof(const uint8_t));
+}
+
+void marshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
+}
+
+void unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
+}
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -9507,9 +12020,12 @@
     vkStream->write((VkSampleCountFlagBits*)&forMarshaling->sampleLocationsPerPixel, sizeof(VkSampleCountFlagBits));
     marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->sampleLocationGridSize));
     vkStream->write((uint32_t*)&forMarshaling->sampleLocationsCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationsCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkSampleLocationEXT(vkStream, (const VkSampleLocationEXT*)(forMarshaling->pSampleLocations + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationsCount; ++i)
+        {
+            marshal_VkSampleLocationEXT(vkStream, (const VkSampleLocationEXT*)(forMarshaling->pSampleLocations + i));
+        }
     }
 }
 
@@ -9522,9 +12038,12 @@
     vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->sampleLocationsPerPixel, sizeof(VkSampleCountFlagBits));
     unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->sampleLocationGridSize));
     vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationsCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->sampleLocationsCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkSampleLocationEXT(vkStream, (VkSampleLocationEXT*)(forUnmarshaling->pSampleLocations + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->sampleLocationsCount; ++i)
+        {
+            unmarshal_VkSampleLocationEXT(vkStream, (VkSampleLocationEXT*)(forUnmarshaling->pSampleLocations + i));
+        }
     }
 }
 
@@ -9567,14 +12086,20 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((uint32_t*)&forMarshaling->attachmentInitialSampleLocationsCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentInitialSampleLocationsCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkAttachmentSampleLocationsEXT(vkStream, (const VkAttachmentSampleLocationsEXT*)(forMarshaling->pAttachmentInitialSampleLocations + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentInitialSampleLocationsCount; ++i)
+        {
+            marshal_VkAttachmentSampleLocationsEXT(vkStream, (const VkAttachmentSampleLocationsEXT*)(forMarshaling->pAttachmentInitialSampleLocations + i));
+        }
     }
     vkStream->write((uint32_t*)&forMarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->postSubpassSampleLocationsCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkSubpassSampleLocationsEXT(vkStream, (const VkSubpassSampleLocationsEXT*)(forMarshaling->pPostSubpassSampleLocations + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->postSubpassSampleLocationsCount; ++i)
+        {
+            marshal_VkSubpassSampleLocationsEXT(vkStream, (const VkSubpassSampleLocationsEXT*)(forMarshaling->pPostSubpassSampleLocations + i));
+        }
     }
 }
 
@@ -9585,14 +12110,20 @@
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((uint32_t*)&forUnmarshaling->attachmentInitialSampleLocationsCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentInitialSampleLocationsCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkAttachmentSampleLocationsEXT(vkStream, (VkAttachmentSampleLocationsEXT*)(forUnmarshaling->pAttachmentInitialSampleLocations + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->attachmentInitialSampleLocationsCount; ++i)
+        {
+            unmarshal_VkAttachmentSampleLocationsEXT(vkStream, (VkAttachmentSampleLocationsEXT*)(forUnmarshaling->pAttachmentInitialSampleLocations + i));
+        }
     }
     vkStream->read((uint32_t*)&forUnmarshaling->postSubpassSampleLocationsCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->postSubpassSampleLocationsCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkSubpassSampleLocationsEXT(vkStream, (VkSubpassSampleLocationsEXT*)(forUnmarshaling->pPostSubpassSampleLocations + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->postSubpassSampleLocationsCount; ++i)
+        {
+            unmarshal_VkSubpassSampleLocationsEXT(vkStream, (VkSubpassSampleLocationsEXT*)(forUnmarshaling->pPostSubpassSampleLocations + i));
+        }
     }
 }
 
@@ -9767,8 +12298,8 @@
     vkStream->write((VkBool32*)&forMarshaling->coverageModulationTableEnable, sizeof(VkBool32));
     vkStream->write((uint32_t*)&forMarshaling->coverageModulationTableCount, sizeof(uint32_t));
     // WARNING PTR CHECK
-    uint64_t cgen_var_362 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
-    vkStream->putBe64(cgen_var_362);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pCoverageModulationTable)
     {
         vkStream->write((const float*)forMarshaling->pCoverageModulationTable, forMarshaling->coverageModulationTableCount * sizeof(const float));
@@ -9801,8 +12332,228 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void marshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->shaderSMCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->shaderWarpsPerSM, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderSMCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderWarpsPerSM, sizeof(uint32_t));
+}
+
+void marshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderSMBuiltins, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSMBuiltins, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void marshal_VkDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesEXT* forMarshaling)
+{
+    vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    vkStream->write((VkFormatFeatureFlags*)&forMarshaling->drmFormatModifierTilingFeatures, sizeof(VkFormatFeatureFlags));
+}
+
+void unmarshal_VkDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkDrmFormatModifierPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    vkStream->read((VkFormatFeatureFlags*)&forUnmarshaling->drmFormatModifierTilingFeatures, sizeof(VkFormatFeatureFlags));
+}
+
+void marshal_VkDrmFormatModifierPropertiesListEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesListEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pDrmFormatModifierProperties)
+    {
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i)
+            {
+                marshal_VkDrmFormatModifierPropertiesEXT(vkStream, (VkDrmFormatModifierPropertiesEXT*)(forMarshaling->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void unmarshal_VkDrmFormatModifierPropertiesListEXT(
+    VulkanStreamGuest* vkStream,
+    VkDrmFormatModifierPropertiesListEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    VkDrmFormatModifierPropertiesEXT* check_pDrmFormatModifierProperties;
+    check_pDrmFormatModifierProperties = (VkDrmFormatModifierPropertiesEXT*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pDrmFormatModifierProperties)
+    {
+        if (!(check_pDrmFormatModifierProperties))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pDrmFormatModifierProperties inconsistent between guest and host\n");
+        }
+        if ((forUnmarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierCount; ++i)
+            {
+                unmarshal_VkDrmFormatModifierPropertiesEXT(vkStream, (VkDrmFormatModifierPropertiesEXT*)(forUnmarshaling->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->write((VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
+    vkStream->write((uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pQueueFamilyIndices)
+    {
+        vkStream->write((const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
+    }
+}
+
+void unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->read((VkSharingMode*)&forUnmarshaling->sharingMode, sizeof(VkSharingMode));
+    vkStream->read((uint32_t*)&forUnmarshaling->queueFamilyIndexCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const uint32_t* check_pQueueFamilyIndices;
+    check_pQueueFamilyIndices = (const uint32_t*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pQueueFamilyIndices)
+    {
+        if (!(check_pQueueFamilyIndices))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pQueueFamilyIndices inconsistent between guest and host\n");
+        }
+        vkStream->read((uint32_t*)forUnmarshaling->pQueueFamilyIndices, forUnmarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
+    }
+}
+
+void marshal_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
+    vkStream->write((const uint64_t*)forMarshaling->pDrmFormatModifiers, forMarshaling->drmFormatModifierCount * sizeof(const uint64_t));
+}
+
+void unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageDrmFormatModifierListCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierCount, sizeof(uint32_t));
+    vkStream->read((uint64_t*)forUnmarshaling->pDrmFormatModifiers, forUnmarshaling->drmFormatModifierCount * sizeof(const uint64_t));
+}
+
+void marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->write((uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierPlaneCount; ++i)
+        {
+            marshal_VkSubresourceLayout(vkStream, (const VkSubresourceLayout*)(forMarshaling->pPlaneLayouts + i));
+        }
+    }
+}
+
+void unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->drmFormatModifierPlaneCount; ++i)
+        {
+            unmarshal_VkSubresourceLayout(vkStream, (VkSubresourceLayout*)(forUnmarshaling->pPlaneLayouts + i));
+        }
+    }
+}
+
+void marshal_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+}
+
+void unmarshal_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageDrmFormatModifierPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->drmFormatModifier, sizeof(uint64_t));
+}
+
+#endif
 #ifdef VK_EXT_validation_cache
 void marshal_VkValidationCacheCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -9811,8 +12562,8 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkValidationCacheCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkValidationCacheCreateFlagsEXT));
-    uint64_t cgen_var_364 = (uint64_t)forMarshaling->initialDataSize;
-    vkStream->putBe64(cgen_var_364);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
+    vkStream->putBe64(cgen_var_0);
     vkStream->write((const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
 }
 
@@ -9833,9 +12584,9 @@
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    uint64_t cgen_var_366;
-    vkStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&forMarshaling->validationCache, &cgen_var_366, 1);
-    vkStream->write((uint64_t*)&cgen_var_366, 1 * 8);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkValidationCacheEXT_u64(&forMarshaling->validationCache, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
 }
 
 void unmarshal_VkShaderModuleValidationCacheCreateInfoEXT(
@@ -9844,191 +12595,773 @@
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    uint64_t cgen_var_367;
-    vkStream->read((uint64_t*)&cgen_var_367, 1 * 8);
-    vkStream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_367, (VkValidationCacheEXT*)&forUnmarshaling->validationCache, 1);
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkValidationCacheEXT(&cgen_var_0, (VkValidationCacheEXT*)&forUnmarshaling->validationCache, 1);
 }
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+#endif
+#ifdef VK_EXT_shader_viewport_index_layer
+#endif
+#ifdef VK_NV_shading_rate_image
+void marshal_VkShadingRatePaletteNV(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling)
+    const VkShadingRatePaletteNV* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->shadingRatePaletteEntryCount, sizeof(uint32_t));
+    vkStream->write((const VkShadingRatePaletteEntryNV*)forMarshaling->pShadingRatePaletteEntries, forMarshaling->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV));
+}
+
+void unmarshal_VkShadingRatePaletteNV(
+    VulkanStreamGuest* vkStream,
+    VkShadingRatePaletteNV* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->shadingRatePaletteEntryCount, sizeof(uint32_t));
+    vkStream->read((VkShadingRatePaletteEntryNV*)forUnmarshaling->pShadingRatePaletteEntries, forUnmarshaling->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV));
+}
+
+void marshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
-    vkStream->write((const VkDescriptorBindingFlagsEXT*)forMarshaling->pBindingFlags, forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
+    vkStream->write((VkBool32*)&forMarshaling->shadingRateImageEnable, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pShadingRatePalettes;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pShadingRatePalettes)
+    {
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+            {
+                marshal_VkShadingRatePaletteNV(vkStream, (const VkShadingRatePaletteNV*)(forMarshaling->pShadingRatePalettes + i));
+            }
+        }
+    }
 }
 
-void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+void unmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
     VulkanStreamGuest* vkStream,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forUnmarshaling)
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->bindingCount, sizeof(uint32_t));
-    vkStream->read((VkDescriptorBindingFlagsEXT*)forUnmarshaling->pBindingFlags, forUnmarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
+    vkStream->read((VkBool32*)&forUnmarshaling->shadingRateImageEnable, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->viewportCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkShadingRatePaletteNV* check_pShadingRatePalettes;
+    check_pShadingRatePalettes = (const VkShadingRatePaletteNV*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pShadingRatePalettes)
+    {
+        if (!(check_pShadingRatePalettes))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pShadingRatePalettes inconsistent between guest and host\n");
+        }
+        if ((forUnmarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->viewportCount; ++i)
+            {
+                unmarshal_VkShadingRatePaletteNV(vkStream, (VkShadingRatePaletteNV*)(forUnmarshaling->pShadingRatePalettes + i));
+            }
+        }
+    }
 }
 
-void marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void marshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling)
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shadingRateImage, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shadingRateCoarseSampleOrder, sizeof(VkBool32));
 }
 
-void unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void unmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forUnmarshaling)
+    VkPhysicalDeviceShadingRateImageFeaturesNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shadingRateImage, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shadingRateCoarseSampleOrder, sizeof(VkBool32));
 }
 
-void marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void marshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling)
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
-    vkStream->write((VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
-    vkStream->write((VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
-    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
-    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    marshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->shadingRateTexelSize));
+    vkStream->write((uint32_t*)&forMarshaling->shadingRatePaletteSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->shadingRateMaxCoarseSamples, sizeof(uint32_t));
 }
 
-void unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void unmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forUnmarshaling)
+    VkPhysicalDeviceShadingRateImagePropertiesNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
-    vkStream->read((VkBool32*)&forUnmarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    unmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forUnmarshaling->shadingRateTexelSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->shadingRatePaletteSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->shadingRateMaxCoarseSamples, sizeof(uint32_t));
 }
 
-void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void marshal_VkCoarseSampleLocationNV(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling)
+    const VkCoarseSampleLocationNV* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->pixelX, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->pixelY, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->sample, sizeof(uint32_t));
+}
+
+void unmarshal_VkCoarseSampleLocationNV(
+    VulkanStreamGuest* vkStream,
+    VkCoarseSampleLocationNV* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->pixelX, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->pixelY, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->sample, sizeof(uint32_t));
+}
+
+void marshal_VkCoarseSampleOrderCustomNV(
+    VulkanStreamGuest* vkStream,
+    const VkCoarseSampleOrderCustomNV* forMarshaling)
+{
+    vkStream->write((VkShadingRatePaletteEntryNV*)&forMarshaling->shadingRate, sizeof(VkShadingRatePaletteEntryNV));
+    vkStream->write((uint32_t*)&forMarshaling->sampleCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->sampleLocationCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationCount; ++i)
+        {
+            marshal_VkCoarseSampleLocationNV(vkStream, (const VkCoarseSampleLocationNV*)(forMarshaling->pSampleLocations + i));
+        }
+    }
+}
+
+void unmarshal_VkCoarseSampleOrderCustomNV(
+    VulkanStreamGuest* vkStream,
+    VkCoarseSampleOrderCustomNV* forUnmarshaling)
+{
+    vkStream->read((VkShadingRatePaletteEntryNV*)&forUnmarshaling->shadingRate, sizeof(VkShadingRatePaletteEntryNV));
+    vkStream->read((uint32_t*)&forUnmarshaling->sampleCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->sampleLocationCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->sampleLocationCount; ++i)
+        {
+            unmarshal_VkCoarseSampleLocationNV(vkStream, (VkCoarseSampleLocationNV*)(forUnmarshaling->pSampleLocations + i));
+        }
+    }
+}
+
+void marshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forMarshaling)
 {
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
-    vkStream->write((const uint32_t*)forMarshaling->pDescriptorCounts, forMarshaling->descriptorSetCount * sizeof(const uint32_t));
+    vkStream->write((VkCoarseSampleOrderTypeNV*)&forMarshaling->sampleOrderType, sizeof(VkCoarseSampleOrderTypeNV));
+    vkStream->write((uint32_t*)&forMarshaling->customSampleOrderCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->customSampleOrderCount; ++i)
+        {
+            marshal_VkCoarseSampleOrderCustomNV(vkStream, (const VkCoarseSampleOrderCustomNV*)(forMarshaling->pCustomSampleOrders + i));
+        }
+    }
 }
 
-void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void unmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
     VulkanStreamGuest* vkStream,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forUnmarshaling)
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forUnmarshaling)
 {
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->descriptorSetCount, sizeof(uint32_t));
-    vkStream->read((uint32_t*)forUnmarshaling->pDescriptorCounts, forUnmarshaling->descriptorSetCount * sizeof(const uint32_t));
-}
-
-void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling)
-{
-    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    marshal_extension_struct(vkStream, forMarshaling->pNext);
-    vkStream->write((uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
-}
-
-void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStreamGuest* vkStream,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forUnmarshaling)
-{
-    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
-    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
-    vkStream->read((uint32_t*)&forUnmarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
+    vkStream->read((VkCoarseSampleOrderTypeNV*)&forUnmarshaling->sampleOrderType, sizeof(VkCoarseSampleOrderTypeNV));
+    vkStream->read((uint32_t*)&forUnmarshaling->customSampleOrderCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->customSampleOrderCount; ++i)
+        {
+            unmarshal_VkCoarseSampleOrderCustomNV(vkStream, (VkCoarseSampleOrderCustomNV*)(forUnmarshaling->pCustomSampleOrders + i));
+        }
+    }
 }
 
 #endif
-#ifdef VK_EXT_shader_viewport_index_layer
+#ifdef VK_NV_ray_tracing
+void marshal_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkRayTracingShaderGroupTypeKHR*)&forMarshaling->type, sizeof(VkRayTracingShaderGroupTypeKHR));
+    vkStream->write((uint32_t*)&forMarshaling->generalShader, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->closestHitShader, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->anyHitShader, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->intersectionShader, sizeof(uint32_t));
+}
+
+void unmarshal_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingShaderGroupCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkRayTracingShaderGroupTypeKHR*)&forUnmarshaling->type, sizeof(VkRayTracingShaderGroupTypeKHR));
+    vkStream->read((uint32_t*)&forUnmarshaling->generalShader, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->closestHitShader, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->anyHitShader, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->intersectionShader, sizeof(uint32_t));
+}
+
+void marshal_VkRayTracingPipelineCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
+    vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+        {
+            marshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i)
+        {
+            marshal_VkRayTracingShaderGroupCreateInfoNV(vkStream, (const VkRayTracingShaderGroupCreateInfoNV*)(forMarshaling->pGroups + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->maxRecursionDepth, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
+}
+
+void unmarshal_VkRayTracingPipelineCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingPipelineCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i)
+        {
+            unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->groupCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->groupCount; ++i)
+        {
+            unmarshal_VkRayTracingShaderGroupCreateInfoNV(vkStream, (VkRayTracingShaderGroupCreateInfoNV*)(forUnmarshaling->pGroups + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->maxRecursionDepth, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_1, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
+    vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
+}
+
+void marshal_VkGeometryTrianglesNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryTrianglesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->vertexData, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->vertexOffset, sizeof(VkDeviceSize));
+    vkStream->write((uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
+    vkStream->write((VkDeviceSize*)&forMarshaling->vertexStride, sizeof(VkDeviceSize));
+    vkStream->write((VkFormat*)&forMarshaling->vertexFormat, sizeof(VkFormat));
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->indexData, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->indexOffset, sizeof(VkDeviceSize));
+    vkStream->write((uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
+    vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
+    uint64_t cgen_var_2;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->transformData, &cgen_var_2, 1);
+    vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->transformOffset, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkGeometryTrianglesNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryTrianglesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->vertexData, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->vertexOffset, sizeof(VkDeviceSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->vertexCount, sizeof(uint32_t));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->vertexStride, sizeof(VkDeviceSize));
+    vkStream->read((VkFormat*)&forUnmarshaling->vertexFormat, sizeof(VkFormat));
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_1, (VkBuffer*)&forUnmarshaling->indexData, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->indexOffset, sizeof(VkDeviceSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->indexCount, sizeof(uint32_t));
+    vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
+    uint64_t cgen_var_2;
+    vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_2, (VkBuffer*)&forUnmarshaling->transformData, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->transformOffset, sizeof(VkDeviceSize));
+}
+
+void marshal_VkGeometryAABBNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryAABBNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->aabbData, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->numAABBs, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
+    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkGeometryAABBNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryAABBNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->aabbData, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->numAABBs, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
+}
+
+void marshal_VkGeometryDataNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryDataNV* forMarshaling)
+{
+    marshal_VkGeometryTrianglesNV(vkStream, (VkGeometryTrianglesNV*)(&forMarshaling->triangles));
+    marshal_VkGeometryAABBNV(vkStream, (VkGeometryAABBNV*)(&forMarshaling->aabbs));
+}
+
+void unmarshal_VkGeometryDataNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryDataNV* forUnmarshaling)
+{
+    unmarshal_VkGeometryTrianglesNV(vkStream, (VkGeometryTrianglesNV*)(&forUnmarshaling->triangles));
+    unmarshal_VkGeometryAABBNV(vkStream, (VkGeometryAABBNV*)(&forUnmarshaling->aabbs));
+}
+
+void marshal_VkGeometryNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkGeometryTypeKHR*)&forMarshaling->geometryType, sizeof(VkGeometryTypeKHR));
+    marshal_VkGeometryDataNV(vkStream, (VkGeometryDataNV*)(&forMarshaling->geometry));
+    vkStream->write((VkGeometryFlagsKHR*)&forMarshaling->flags, sizeof(VkGeometryFlagsKHR));
+}
+
+void unmarshal_VkGeometryNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkGeometryTypeKHR*)&forUnmarshaling->geometryType, sizeof(VkGeometryTypeKHR));
+    unmarshal_VkGeometryDataNV(vkStream, (VkGeometryDataNV*)(&forUnmarshaling->geometry));
+    vkStream->read((VkGeometryFlagsKHR*)&forUnmarshaling->flags, sizeof(VkGeometryFlagsKHR));
+}
+
+void marshal_VkAccelerationStructureInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAccelerationStructureTypeNV*)&forMarshaling->type, sizeof(VkAccelerationStructureTypeNV));
+    vkStream->write((VkBuildAccelerationStructureFlagsNV*)&forMarshaling->flags, sizeof(VkBuildAccelerationStructureFlagsNV));
+    vkStream->write((uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->geometryCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->geometryCount; ++i)
+        {
+            marshal_VkGeometryNV(vkStream, (const VkGeometryNV*)(forMarshaling->pGeometries + i));
+        }
+    }
+}
+
+void unmarshal_VkAccelerationStructureInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAccelerationStructureTypeNV*)&forUnmarshaling->type, sizeof(VkAccelerationStructureTypeNV));
+    vkStream->read((VkBuildAccelerationStructureFlagsNV*)&forUnmarshaling->flags, sizeof(VkBuildAccelerationStructureFlagsNV));
+    vkStream->read((uint32_t*)&forUnmarshaling->instanceCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->geometryCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->geometryCount; ++i)
+        {
+            unmarshal_VkGeometryNV(vkStream, (VkGeometryNV*)(forUnmarshaling->pGeometries + i));
+        }
+    }
+}
+
+void marshal_VkAccelerationStructureCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)&forMarshaling->compactedSize, sizeof(VkDeviceSize));
+    marshal_VkAccelerationStructureInfoNV(vkStream, (VkAccelerationStructureInfoNV*)(&forMarshaling->info));
+}
+
+void unmarshal_VkAccelerationStructureCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->compactedSize, sizeof(VkDeviceSize));
+    unmarshal_VkAccelerationStructureInfoNV(vkStream, (VkAccelerationStructureInfoNV*)(&forUnmarshaling->info));
+}
+
+void marshal_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindAccelerationStructureMemoryInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureNV_u64(&forMarshaling->accelerationStructure, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkDeviceMemory_u64(&forMarshaling->memory, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
+    vkStream->write((uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pDeviceIndices, forMarshaling->deviceIndexCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkBindAccelerationStructureMemoryInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(&cgen_var_0, (VkAccelerationStructureNV*)&forUnmarshaling->accelerationStructure, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkDeviceMemory(&cgen_var_1, (VkDeviceMemory*)&forUnmarshaling->memory, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->memoryOffset, sizeof(VkDeviceSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->deviceIndexCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pDeviceIndices, forUnmarshaling->deviceIndexCount * sizeof(const uint32_t));
+}
+
+void marshal_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->accelerationStructureCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAccelerationStructures;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pAccelerationStructures)
+    {
+        if (forMarshaling->accelerationStructureCount)
+        {
+            uint64_t* cgen_var_0_0;
+            vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
+            vkStream->handleMapping()->mapHandles_VkAccelerationStructureNV_u64(forMarshaling->pAccelerationStructures, cgen_var_0_0, forMarshaling->accelerationStructureCount);
+            vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
+        }
+    }
+}
+
+void unmarshal_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanStreamGuest* vkStream,
+    VkWriteDescriptorSetAccelerationStructureNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->accelerationStructureCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkAccelerationStructureNV* check_pAccelerationStructures;
+    check_pAccelerationStructures = (const VkAccelerationStructureNV*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pAccelerationStructures)
+    {
+        if (!(check_pAccelerationStructures))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pAccelerationStructures inconsistent between guest and host\n");
+        }
+        if (forUnmarshaling->accelerationStructureCount)
+        {
+            uint64_t* cgen_var_0_0;
+            vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->accelerationStructureCount * 8);
+            vkStream->read((uint64_t*)cgen_var_0_0, forUnmarshaling->accelerationStructureCount * 8);
+            vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(cgen_var_0_0, (VkAccelerationStructureNV*)forUnmarshaling->pAccelerationStructures, forUnmarshaling->accelerationStructureCount);
+        }
+    }
+}
+
+void marshal_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAccelerationStructureMemoryRequirementsTypeNV*)&forMarshaling->type, sizeof(VkAccelerationStructureMemoryRequirementsTypeNV));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureNV_u64(&forMarshaling->accelerationStructure, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+}
+
+void unmarshal_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureMemoryRequirementsInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAccelerationStructureMemoryRequirementsTypeNV*)&forUnmarshaling->type, sizeof(VkAccelerationStructureMemoryRequirementsTypeNV));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureNV(&cgen_var_0, (VkAccelerationStructureNV*)&forUnmarshaling->accelerationStructure, 1);
+}
+
+void marshal_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPropertiesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxRecursionDepth, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxShaderGroupStride, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
+    vkStream->write((uint64_t*)&forMarshaling->maxGeometryCount, sizeof(uint64_t));
+    vkStream->write((uint64_t*)&forMarshaling->maxInstanceCount, sizeof(uint64_t));
+    vkStream->write((uint64_t*)&forMarshaling->maxTriangleCount, sizeof(uint64_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetAccelerationStructures, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayTracingPropertiesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxRecursionDepth, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxShaderGroupStride, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxGeometryCount, sizeof(uint64_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxInstanceCount, sizeof(uint64_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxTriangleCount, sizeof(uint64_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetAccelerationStructures, sizeof(uint32_t));
+}
+
+void marshal_VkTransformMatrixKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTransformMatrixKHR* forMarshaling)
+{
+    vkStream->write((float*)forMarshaling->matrix, ((3)*(4)) * sizeof(float));
+}
+
+void unmarshal_VkTransformMatrixKHR(
+    VulkanStreamGuest* vkStream,
+    VkTransformMatrixKHR* forUnmarshaling)
+{
+    vkStream->read((float*)forUnmarshaling->matrix, ((3)*(4)) * sizeof(float));
+}
+
+void marshal_VkAabbPositionsKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAabbPositionsKHR* forMarshaling)
+{
+    vkStream->write((float*)&forMarshaling->minX, sizeof(float));
+    vkStream->write((float*)&forMarshaling->minY, sizeof(float));
+    vkStream->write((float*)&forMarshaling->minZ, sizeof(float));
+    vkStream->write((float*)&forMarshaling->maxX, sizeof(float));
+    vkStream->write((float*)&forMarshaling->maxY, sizeof(float));
+    vkStream->write((float*)&forMarshaling->maxZ, sizeof(float));
+}
+
+void unmarshal_VkAabbPositionsKHR(
+    VulkanStreamGuest* vkStream,
+    VkAabbPositionsKHR* forUnmarshaling)
+{
+    vkStream->read((float*)&forUnmarshaling->minX, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->minY, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->minZ, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->maxX, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->maxY, sizeof(float));
+    vkStream->read((float*)&forUnmarshaling->maxZ, sizeof(float));
+}
+
+void marshal_VkAccelerationStructureInstanceKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInstanceKHR* forMarshaling)
+{
+    
+    typedef struct VkAccelerationStructureInstanceKHRWithoutBitFields {
+        VkTransformMatrixKHR          transform;
+        uint32_t                      dwords[2];
+        uint64_t                      accelerationStructureReference;
+    } VkAccelerationStructureInstanceKHRWithoutBitFields;
+    
+    const VkAccelerationStructureInstanceKHRWithoutBitFields* forMarshaling_new = (const VkAccelerationStructureInstanceKHRWithoutBitFields*)(forMarshaling);
+    marshal_VkTransformMatrixKHR(vkStream, (VkTransformMatrixKHR*)(&forMarshaling_new->transform));
+    for (uint32_t i = 0; i < 2; i++) {
+        vkStream->write((uint32_t*)&(forMarshaling_new->dwords[i]), sizeof(uint32_t));
+    }
+    vkStream->write((uint64_t*)&forMarshaling_new->accelerationStructureReference, sizeof(uint64_t));
+    
+}
+
+void unmarshal_VkAccelerationStructureInstanceKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureInstanceKHR* forUnmarshaling)
+{
+    
+    typedef struct VkAccelerationStructureInstanceKHRWithoutBitFields {
+        VkTransformMatrixKHR          transform;
+        uint32_t                      dwords[2];
+        uint64_t                      accelerationStructureReference;
+    } VkAccelerationStructureInstanceKHRWithoutBitFields;
+    
+    VkAccelerationStructureInstanceKHRWithoutBitFields* forUnmarshaling_new = (VkAccelerationStructureInstanceKHRWithoutBitFields*)(forUnmarshaling);
+    unmarshal_VkTransformMatrixKHR(vkStream, (VkTransformMatrixKHR*)(&forUnmarshaling_new->transform));
+    for (uint32_t i = 0; i < 2; i++) {
+        vkStream->read((uint32_t*)&(forUnmarshaling_new->dwords[i]), sizeof(uint32_t));
+    }
+    vkStream->read((uint64_t*)&forUnmarshaling_new->accelerationStructureReference, sizeof(uint64_t));
+    
+}
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void marshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->representativeFragmentTest, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->representativeFragmentTest, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->representativeFragmentTestEnable, sizeof(VkBool32));
+}
+
+void unmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->representativeFragmentTestEnable, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void marshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkImageViewType*)&forMarshaling->imageViewType, sizeof(VkImageViewType));
+}
+
+void unmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkImageViewType*)&forUnmarshaling->imageViewType, sizeof(VkImageViewType));
+}
+
+void marshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->filterCubic, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->filterCubicMinmax, sizeof(VkBool32));
+}
+
+void unmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->filterCubic, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->filterCubicMinmax, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
 #endif
 #ifdef VK_EXT_global_priority
 void marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
@@ -10059,8 +13392,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     // WARNING PTR CHECK
-    uint64_t cgen_var_368 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
-    vkStream->putBe64(cgen_var_368);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pHostPointer)
     {
         vkStream->write((void*)forMarshaling->pHostPointer, sizeof(uint8_t));
@@ -10126,6 +13459,46 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void marshal_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCompilerControlCreateInfoAMD* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineCompilerControlFlagsAMD*)&forMarshaling->compilerControlFlags, sizeof(VkPipelineCompilerControlFlagsAMD));
+}
+
+void unmarshal_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCompilerControlCreateInfoAMD* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineCompilerControlFlagsAMD*)&forUnmarshaling->compilerControlFlags, sizeof(VkPipelineCompilerControlFlagsAMD));
+}
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void marshal_VkCalibratedTimestampInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkCalibratedTimestampInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkTimeDomainEXT*)&forMarshaling->timeDomain, sizeof(VkTimeDomainEXT));
+}
+
+void unmarshal_VkCalibratedTimestampInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkCalibratedTimestampInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkTimeDomainEXT*)&forUnmarshaling->timeDomain, sizeof(VkTimeDomainEXT));
+}
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -10172,6 +13545,26 @@
 }
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void marshal_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkMemoryOverallocationBehaviorAMD*)&forMarshaling->overallocationBehavior, sizeof(VkMemoryOverallocationBehaviorAMD));
+}
+
+void unmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkDeviceMemoryOverallocationCreateInfoAMD* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkMemoryOverallocationBehaviorAMD*)&forUnmarshaling->overallocationBehavior, sizeof(VkMemoryOverallocationBehaviorAMD));
+}
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     VulkanStreamGuest* vkStream,
@@ -10214,9 +13607,12 @@
     vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((uint32_t*)&forMarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDivisorCount; ++i)
+    if ((forMarshaling) != nullptr)
     {
-        marshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (const VkVertexInputBindingDivisorDescriptionEXT*)(forMarshaling->pVertexBindingDivisors + i));
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->vertexBindingDivisorCount; ++i)
+        {
+            marshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (const VkVertexInputBindingDivisorDescriptionEXT*)(forMarshaling->pVertexBindingDivisors + i));
+        }
     }
 }
 
@@ -10227,15 +13623,320 @@
     vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
     unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
     vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingDivisorCount, sizeof(uint32_t));
-    for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDivisorCount; ++i)
+    if ((forUnmarshaling) != nullptr)
     {
-        unmarshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (VkVertexInputBindingDivisorDescriptionEXT*)(forUnmarshaling->pVertexBindingDivisors + i));
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->vertexBindingDivisorCount; ++i)
+        {
+            unmarshal_VkVertexInputBindingDivisorDescriptionEXT(vkStream, (VkVertexInputBindingDivisorDescriptionEXT*)(forUnmarshaling->pVertexBindingDivisors + i));
+        }
+    }
+}
+
+void marshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateDivisor, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->vertexAttributeInstanceRateZeroDivisor, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateDivisor, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->vertexAttributeInstanceRateZeroDivisor, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_GGP_frame_token
+void marshal_VkPresentFrameTokenGGP(
+    VulkanStreamGuest* vkStream,
+    const VkPresentFrameTokenGGP* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((GgpFrameToken*)&forMarshaling->frameToken, sizeof(GgpFrameToken));
+}
+
+void unmarshal_VkPresentFrameTokenGGP(
+    VulkanStreamGuest* vkStream,
+    VkPresentFrameTokenGGP* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((GgpFrameToken*)&forUnmarshaling->frameToken, sizeof(GgpFrameToken));
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void marshal_VkPipelineCreationFeedbackEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackEXT* forMarshaling)
+{
+    vkStream->write((VkPipelineCreationFeedbackFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineCreationFeedbackFlagsEXT));
+    vkStream->write((uint64_t*)&forMarshaling->duration, sizeof(uint64_t));
+}
+
+void unmarshal_VkPipelineCreationFeedbackEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCreationFeedbackEXT* forUnmarshaling)
+{
+    vkStream->read((VkPipelineCreationFeedbackFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPipelineCreationFeedbackFlagsEXT));
+    vkStream->read((uint64_t*)&forUnmarshaling->duration, sizeof(uint64_t));
+}
+
+void marshal_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkPipelineCreationFeedbackEXT(vkStream, (VkPipelineCreationFeedbackEXT*)(forMarshaling->pPipelineCreationFeedback));
+    vkStream->write((uint32_t*)&forMarshaling->pipelineStageCreationFeedbackCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->pipelineStageCreationFeedbackCount; ++i)
+        {
+            marshal_VkPipelineCreationFeedbackEXT(vkStream, (VkPipelineCreationFeedbackEXT*)(forMarshaling->pPipelineStageCreationFeedbacks + i));
+        }
+    }
+}
+
+void unmarshal_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCreationFeedbackCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkPipelineCreationFeedbackEXT(vkStream, (VkPipelineCreationFeedbackEXT*)(forUnmarshaling->pPipelineCreationFeedback));
+    vkStream->read((uint32_t*)&forUnmarshaling->pipelineStageCreationFeedbackCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->pipelineStageCreationFeedbackCount; ++i)
+        {
+            unmarshal_VkPipelineCreationFeedbackEXT(vkStream, (VkPipelineCreationFeedbackEXT*)(forUnmarshaling->pPipelineStageCreationFeedbacks + i));
+        }
     }
 }
 
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void marshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->computeDerivativeGroupQuads, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->computeDerivativeGroupLinear, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->computeDerivativeGroupQuads, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->computeDerivativeGroupLinear, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_NV_mesh_shader
+void marshal_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->taskShader, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->meshShader, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMeshShaderFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->taskShader, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->meshShader, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxDrawMeshTasksCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxTaskWorkGroupInvocations, sizeof(uint32_t));
+    vkStream->write((uint32_t*)forMarshaling->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxTaskTotalMemorySize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxTaskOutputCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxMeshWorkGroupInvocations, sizeof(uint32_t));
+    vkStream->write((uint32_t*)forMarshaling->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxMeshTotalMemorySize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputVertices, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxMeshOutputPrimitives, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxMeshMultiviewViewCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->meshOutputPerVertexGranularity, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->meshOutputPerPrimitiveGranularity, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMeshShaderPropertiesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDrawMeshTasksCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTaskWorkGroupInvocations, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTaskTotalMemorySize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxTaskOutputCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMeshWorkGroupInvocations, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMeshTotalMemorySize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputVertices, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMeshOutputPrimitives, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxMeshMultiviewViewCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->meshOutputPerVertexGranularity, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->meshOutputPerPrimitiveGranularity, sizeof(uint32_t));
+}
+
+void marshal_VkDrawMeshTasksIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkDrawMeshTasksIndirectCommandNV* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->taskCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->firstTask, sizeof(uint32_t));
+}
+
+void unmarshal_VkDrawMeshTasksIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkDrawMeshTasksIndirectCommandNV* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->taskCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->firstTask, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void marshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShaderBarycentric, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderBarycentric, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void marshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->imageFootprint, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->imageFootprint, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void marshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->exclusiveScissorCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pExclusiveScissors;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pExclusiveScissors)
+    {
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->exclusiveScissorCount; ++i)
+            {
+                marshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pExclusiveScissors + i));
+            }
+        }
+    }
+}
+
+void unmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->exclusiveScissorCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkRect2D* check_pExclusiveScissors;
+    check_pExclusiveScissors = (const VkRect2D*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pExclusiveScissors)
+    {
+        if (!(check_pExclusiveScissors))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pExclusiveScissors inconsistent between guest and host\n");
+        }
+        if ((forUnmarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->exclusiveScissorCount; ++i)
+            {
+                unmarshal_VkRect2D(vkStream, (VkRect2D*)(forUnmarshaling->pExclusiveScissors + i));
+            }
+        }
+    }
+}
+
+void marshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->exclusiveScissor, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->exclusiveScissor, sizeof(VkBool32));
+}
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void marshal_VkQueueFamilyCheckpointPropertiesNV(
     VulkanStreamGuest* vkStream,
@@ -10263,8 +13964,8 @@
     marshal_extension_struct(vkStream, forMarshaling->pNext);
     vkStream->write((VkPipelineStageFlagBits*)&forMarshaling->stage, sizeof(VkPipelineStageFlagBits));
     // WARNING PTR CHECK
-    uint64_t cgen_var_370 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
-    vkStream->putBe64(cgen_var_370);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
+    vkStream->putBe64(cgen_var_0);
     if (forMarshaling->pCheckpointMarker)
     {
         vkStream->write((void*)forMarshaling->pCheckpointMarker, sizeof(uint8_t));
@@ -10292,7 +13993,309 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void marshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderIntegerFunctions2, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderIntegerFunctions2, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_INTEL_performance_query
+void marshal_VkPerformanceValueDataINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueDataINTEL* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->value32, sizeof(uint32_t));
+}
+
+void unmarshal_VkPerformanceValueDataINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceValueDataINTEL* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->value32, sizeof(uint32_t));
+}
+
+void marshal_VkPerformanceValueINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueINTEL* forMarshaling)
+{
+    vkStream->write((VkPerformanceValueTypeINTEL*)&forMarshaling->type, sizeof(VkPerformanceValueTypeINTEL));
+    marshal_VkPerformanceValueDataINTEL(vkStream, (VkPerformanceValueDataINTEL*)(&forMarshaling->data));
+}
+
+void unmarshal_VkPerformanceValueINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceValueINTEL* forUnmarshaling)
+{
+    vkStream->read((VkPerformanceValueTypeINTEL*)&forUnmarshaling->type, sizeof(VkPerformanceValueTypeINTEL));
+    unmarshal_VkPerformanceValueDataINTEL(vkStream, (VkPerformanceValueDataINTEL*)(&forUnmarshaling->data));
+}
+
+void marshal_VkInitializePerformanceApiInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkInitializePerformanceApiInfoINTEL* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pUserData)
+    {
+        vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
+    }
+}
+
+void unmarshal_VkInitializePerformanceApiInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkInitializePerformanceApiInfoINTEL* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    // WARNING PTR CHECK
+    void* check_pUserData;
+    check_pUserData = (void*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pUserData)
+    {
+        if (!(check_pUserData))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pUserData inconsistent between guest and host\n");
+        }
+        vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
+    }
+}
+
+void marshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkQueryPoolSamplingModeINTEL*)&forMarshaling->performanceCountersSampling, sizeof(VkQueryPoolSamplingModeINTEL));
+}
+
+void unmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkQueryPoolSamplingModeINTEL*)&forUnmarshaling->performanceCountersSampling, sizeof(VkQueryPoolSamplingModeINTEL));
+}
+
+void marshal_VkPerformanceMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceMarkerInfoINTEL* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->marker, sizeof(uint64_t));
+}
+
+void unmarshal_VkPerformanceMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceMarkerInfoINTEL* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->marker, sizeof(uint64_t));
+}
+
+void marshal_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceStreamMarkerInfoINTEL* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->marker, sizeof(uint32_t));
+}
+
+void unmarshal_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceStreamMarkerInfoINTEL* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->marker, sizeof(uint32_t));
+}
+
+void marshal_VkPerformanceOverrideInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceOverrideInfoINTEL* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPerformanceOverrideTypeINTEL*)&forMarshaling->type, sizeof(VkPerformanceOverrideTypeINTEL));
+    vkStream->write((VkBool32*)&forMarshaling->enable, sizeof(VkBool32));
+    vkStream->write((uint64_t*)&forMarshaling->parameter, sizeof(uint64_t));
+}
+
+void unmarshal_VkPerformanceOverrideInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceOverrideInfoINTEL* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPerformanceOverrideTypeINTEL*)&forUnmarshaling->type, sizeof(VkPerformanceOverrideTypeINTEL));
+    vkStream->read((VkBool32*)&forUnmarshaling->enable, sizeof(VkBool32));
+    vkStream->read((uint64_t*)&forUnmarshaling->parameter, sizeof(uint64_t));
+}
+
+void marshal_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceConfigurationAcquireInfoINTEL* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPerformanceConfigurationTypeINTEL*)&forMarshaling->type, sizeof(VkPerformanceConfigurationTypeINTEL));
+}
+
+void unmarshal_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceConfigurationAcquireInfoINTEL* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPerformanceConfigurationTypeINTEL*)&forUnmarshaling->type, sizeof(VkPerformanceConfigurationTypeINTEL));
+}
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void marshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->pciDomain, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->pciBus, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->pciDevice, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->pciFunction, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->pciDomain, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->pciBus, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->pciDevice, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->pciFunction, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void marshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->localDimmingSupport, sizeof(VkBool32));
+}
+
+void unmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanStreamGuest* vkStream,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->localDimmingSupport, sizeof(VkBool32));
+}
+
+void marshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->localDimmingEnable, sizeof(VkBool32));
+}
+
+void unmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->localDimmingEnable, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void marshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkImagePipeSurfaceCreateFlagsFUCHSIA*)&forMarshaling->flags, sizeof(VkImagePipeSurfaceCreateFlagsFUCHSIA));
+    vkStream->write((zx_handle_t*)&forMarshaling->imagePipeHandle, sizeof(zx_handle_t));
+}
+
+void unmarshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkImagePipeSurfaceCreateFlagsFUCHSIA*)&forUnmarshaling->flags, sizeof(VkImagePipeSurfaceCreateFlagsFUCHSIA));
+    vkStream->read((zx_handle_t*)&forUnmarshaling->imagePipeHandle, sizeof(zx_handle_t));
+}
+
+#endif
+#ifdef VK_EXT_metal_surface
+void marshal_VkMetalSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMetalSurfaceCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkMetalSurfaceCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkMetalSurfaceCreateFlagsEXT));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pLayer;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pLayer)
+    {
+        vkStream->write((const CAMetalLayer*)forMarshaling->pLayer, sizeof(const CAMetalLayer));
+    }
+}
+
+void unmarshal_VkMetalSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkMetalSurfaceCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkMetalSurfaceCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkMetalSurfaceCreateFlagsEXT));
+    // WARNING PTR CHECK
+    const CAMetalLayer* check_pLayer;
+    check_pLayer = (const CAMetalLayer*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pLayer)
+    {
+        if (!(check_pLayer))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pLayer inconsistent between guest and host\n");
+        }
+        vkStream->read((CAMetalLayer*)forUnmarshaling->pLayer, sizeof(const CAMetalLayer));
+    }
+}
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void marshal_VkImportColorBufferGOOGLE(
@@ -10358,23 +14361,2608 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void marshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->subgroupSizeControl, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->computeFullSubgroups, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
+    vkStream->write((VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages, sizeof(VkShaderStageFlags));
+}
+
+void unmarshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->minSubgroupSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSubgroupSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
+    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->requiredSubgroupSizeStages, sizeof(VkShaderStageFlags));
+}
+
+void marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->requiredSubgroupSize, sizeof(uint32_t));
+}
+
+void unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->requiredSubgroupSize, sizeof(uint32_t));
+}
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void marshal_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkShaderCorePropertiesFlagsAMD*)&forMarshaling->shaderCoreFeatures, sizeof(VkShaderCorePropertiesFlagsAMD));
+    vkStream->write((uint32_t*)&forMarshaling->activeComputeUnitCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderCoreProperties2AMD* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkShaderCorePropertiesFlagsAMD*)&forUnmarshaling->shaderCoreFeatures, sizeof(VkShaderCorePropertiesFlagsAMD));
+    vkStream->read((uint32_t*)&forUnmarshaling->activeComputeUnitCount, sizeof(uint32_t));
+}
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void marshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->deviceCoherentMemory, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->deviceCoherentMemory, sizeof(VkBool32));
+}
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void marshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderImageInt64Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->sparseImageInt64Atomics, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderImageInt64Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->sparseImageInt64Atomics, sizeof(VkBool32));
+}
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void marshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)forMarshaling->heapBudget, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)forMarshaling->heapUsage, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)forUnmarshaling->heapBudget, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)forUnmarshaling->heapUsage, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+}
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void marshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->memoryPriority, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->memoryPriority, sizeof(VkBool32));
+}
+
+void marshal_VkMemoryPriorityAllocateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryPriorityAllocateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((float*)&forMarshaling->priority, sizeof(float));
+}
+
+void unmarshal_VkMemoryPriorityAllocateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkMemoryPriorityAllocateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((float*)&forUnmarshaling->priority, sizeof(float));
+}
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void marshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->dedicatedAllocationImageAliasing, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->dedicatedAllocationImageAliasing, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+}
+
+void marshal_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void unmarshal_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkBufferDeviceAddressCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+#endif
+#ifdef VK_EXT_tooling_info
+void marshal_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceToolPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((char*)forMarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    vkStream->write((VkToolPurposeFlagsEXT*)&forMarshaling->purposes, sizeof(VkToolPurposeFlagsEXT));
+    vkStream->write((char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->write((char*)forMarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+}
+
+void unmarshal_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceToolPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((char*)forUnmarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    vkStream->read((VkToolPurposeFlagsEXT*)&forUnmarshaling->purposes, sizeof(VkToolPurposeFlagsEXT));
+    vkStream->read((char*)forUnmarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    vkStream->read((char*)forUnmarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+}
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+void marshal_VkValidationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkValidationFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->enabledValidationFeatureCount, sizeof(uint32_t));
+    vkStream->write((const VkValidationFeatureEnableEXT*)forMarshaling->pEnabledValidationFeatures, forMarshaling->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT));
+    vkStream->write((uint32_t*)&forMarshaling->disabledValidationFeatureCount, sizeof(uint32_t));
+    vkStream->write((const VkValidationFeatureDisableEXT*)forMarshaling->pDisabledValidationFeatures, forMarshaling->disabledValidationFeatureCount * sizeof(const VkValidationFeatureDisableEXT));
+}
+
+void unmarshal_VkValidationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkValidationFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->enabledValidationFeatureCount, sizeof(uint32_t));
+    vkStream->read((VkValidationFeatureEnableEXT*)forUnmarshaling->pEnabledValidationFeatures, forUnmarshaling->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT));
+    vkStream->read((uint32_t*)&forUnmarshaling->disabledValidationFeatureCount, sizeof(uint32_t));
+    vkStream->read((VkValidationFeatureDisableEXT*)forUnmarshaling->pDisabledValidationFeatures, forUnmarshaling->disabledValidationFeatureCount * sizeof(const VkValidationFeatureDisableEXT));
+}
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void marshal_VkCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkCooperativeMatrixPropertiesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->MSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->NSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->KSize, sizeof(uint32_t));
+    vkStream->write((VkComponentTypeNV*)&forMarshaling->AType, sizeof(VkComponentTypeNV));
+    vkStream->write((VkComponentTypeNV*)&forMarshaling->BType, sizeof(VkComponentTypeNV));
+    vkStream->write((VkComponentTypeNV*)&forMarshaling->CType, sizeof(VkComponentTypeNV));
+    vkStream->write((VkComponentTypeNV*)&forMarshaling->DType, sizeof(VkComponentTypeNV));
+    vkStream->write((VkScopeNV*)&forMarshaling->scope, sizeof(VkScopeNV));
+}
+
+void unmarshal_VkCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkCooperativeMatrixPropertiesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->MSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->NSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->KSize, sizeof(uint32_t));
+    vkStream->read((VkComponentTypeNV*)&forUnmarshaling->AType, sizeof(VkComponentTypeNV));
+    vkStream->read((VkComponentTypeNV*)&forUnmarshaling->BType, sizeof(VkComponentTypeNV));
+    vkStream->read((VkComponentTypeNV*)&forUnmarshaling->CType, sizeof(VkComponentTypeNV));
+    vkStream->read((VkComponentTypeNV*)&forUnmarshaling->DType, sizeof(VkComponentTypeNV));
+    vkStream->read((VkScopeNV*)&forUnmarshaling->scope, sizeof(VkScopeNV));
+}
+
+void marshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->cooperativeMatrix, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->cooperativeMatrixRobustBufferAccess, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->cooperativeMatrix, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->cooperativeMatrixRobustBufferAccess, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkShaderStageFlags*)&forMarshaling->cooperativeMatrixSupportedStages, sizeof(VkShaderStageFlags));
+}
+
+void unmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->cooperativeMatrixSupportedStages, sizeof(VkShaderStageFlags));
+}
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void marshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->coverageReductionMode, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->coverageReductionMode, sizeof(VkBool32));
+}
+
+void marshal_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCoverageReductionStateCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineCoverageReductionStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineCoverageReductionStateCreateFlagsNV));
+    vkStream->write((VkCoverageReductionModeNV*)&forMarshaling->coverageReductionMode, sizeof(VkCoverageReductionModeNV));
+}
+
+void unmarshal_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCoverageReductionStateCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineCoverageReductionStateCreateFlagsNV*)&forUnmarshaling->flags, sizeof(VkPipelineCoverageReductionStateCreateFlagsNV));
+    vkStream->read((VkCoverageReductionModeNV*)&forUnmarshaling->coverageReductionMode, sizeof(VkCoverageReductionModeNV));
+}
+
+void marshal_VkFramebufferMixedSamplesCombinationNV(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferMixedSamplesCombinationNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkCoverageReductionModeNV*)&forMarshaling->coverageReductionMode, sizeof(VkCoverageReductionModeNV));
+    vkStream->write((VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
+    vkStream->write((VkSampleCountFlags*)&forMarshaling->depthStencilSamples, sizeof(VkSampleCountFlags));
+    vkStream->write((VkSampleCountFlags*)&forMarshaling->colorSamples, sizeof(VkSampleCountFlags));
+}
+
+void unmarshal_VkFramebufferMixedSamplesCombinationNV(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferMixedSamplesCombinationNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkCoverageReductionModeNV*)&forUnmarshaling->coverageReductionMode, sizeof(VkCoverageReductionModeNV));
+    vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
+    vkStream->read((VkSampleCountFlags*)&forUnmarshaling->depthStencilSamples, sizeof(VkSampleCountFlags));
+    vkStream->read((VkSampleCountFlags*)&forUnmarshaling->colorSamples, sizeof(VkSampleCountFlags));
+}
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void marshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShaderSampleInterlock, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShaderPixelInterlock, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShaderShadingRateInterlock, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderSampleInterlock, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderPixelInterlock, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShaderShadingRateInterlock, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void marshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->ycbcrImageArrays, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->ycbcrImageArrays, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void marshal_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkFullScreenExclusiveEXT*)&forMarshaling->fullScreenExclusive, sizeof(VkFullScreenExclusiveEXT));
+}
+
+void unmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceFullScreenExclusiveInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFullScreenExclusiveEXT*)&forUnmarshaling->fullScreenExclusive, sizeof(VkFullScreenExclusiveEXT));
+}
+
+void marshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->fullScreenExclusiveSupported, sizeof(VkBool32));
+}
+
+void unmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->fullScreenExclusiveSupported, sizeof(VkBool32));
+}
+
+void marshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((HMONITOR*)&forMarshaling->hmonitor, sizeof(HMONITOR));
+}
+
+void unmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((HMONITOR*)&forUnmarshaling->hmonitor, sizeof(HMONITOR));
+}
+
+#endif
+#ifdef VK_EXT_headless_surface
+void marshal_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkHeadlessSurfaceCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkHeadlessSurfaceCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkHeadlessSurfaceCreateFlagsEXT));
+}
+
+void unmarshal_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkHeadlessSurfaceCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkHeadlessSurfaceCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkHeadlessSurfaceCreateFlagsEXT));
+}
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void marshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->rectangularLines, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->bresenhamLines, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->smoothLines, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->stippledRectangularLines, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->stippledBresenhamLines, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->stippledSmoothLines, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->rectangularLines, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->bresenhamLines, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->smoothLines, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->stippledRectangularLines, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->stippledBresenhamLines, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->stippledSmoothLines, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
+}
+
+void marshal_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkLineRasterizationModeEXT*)&forMarshaling->lineRasterizationMode, sizeof(VkLineRasterizationModeEXT));
+    vkStream->write((VkBool32*)&forMarshaling->stippledLineEnable, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->lineStippleFactor, sizeof(uint32_t));
+    vkStream->write((uint16_t*)&forMarshaling->lineStipplePattern, sizeof(uint16_t));
+}
+
+void unmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRasterizationLineStateCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkLineRasterizationModeEXT*)&forUnmarshaling->lineRasterizationMode, sizeof(VkLineRasterizationModeEXT));
+    vkStream->read((VkBool32*)&forUnmarshaling->stippledLineEnable, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->lineStippleFactor, sizeof(uint32_t));
+    vkStream->read((uint16_t*)&forUnmarshaling->lineStipplePattern, sizeof(uint16_t));
+}
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void marshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat32Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat32AtomicAdd, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat64Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderBufferFloat64AtomicAdd, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat32Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat32AtomicAdd, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat64Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderSharedFloat64AtomicAdd, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderImageFloat32Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->shaderImageFloat32AtomicAdd, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->sparseImageFloat32Atomics, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->sparseImageFloat32AtomicAdd, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat32Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat32AtomicAdd, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat64Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderBufferFloat64AtomicAdd, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat32Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat32AtomicAdd, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat64Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderSharedFloat64AtomicAdd, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderImageFloat32Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderImageFloat32AtomicAdd, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->sparseImageFloat32Atomics, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->sparseImageFloat32AtomicAdd, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+void marshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->indexTypeUint8, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->indexTypeUint8, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->extendedDynamicState, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->extendedDynamicState, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void marshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxGraphicsShaderGroupCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxIndirectSequenceCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsTokenCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsStreamCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsTokenOffset, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxIndirectCommandsStreamStride, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->minSequencesCountBufferOffsetAlignment, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->minSequencesIndexBufferOffsetAlignment, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->minIndirectCommandsBufferOffsetAlignment, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxGraphicsShaderGroupCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectSequenceCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsTokenCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsStreamCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsTokenOffset, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxIndirectCommandsStreamStride, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->minSequencesCountBufferOffsetAlignment, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->minSequencesIndexBufferOffsetAlignment, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->minIndirectCommandsBufferOffsetAlignment, sizeof(uint32_t));
+}
+
+void marshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->deviceGeneratedCommands, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->deviceGeneratedCommands, sizeof(VkBool32));
+}
+
+void marshal_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsShaderGroupCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+        {
+            marshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pVertexInputState)
+    {
+        marshal_VkPipelineVertexInputStateCreateInfo(vkStream, (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState));
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pTessellationState)
+    {
+        marshal_VkPipelineTessellationStateCreateInfo(vkStream, (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState));
+    }
+}
+
+void unmarshal_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGraphicsShaderGroupCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i)
+        {
+            unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
+        }
+    }
+    // WARNING PTR CHECK
+    const VkPipelineVertexInputStateCreateInfo* check_pVertexInputState;
+    check_pVertexInputState = (const VkPipelineVertexInputStateCreateInfo*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pVertexInputState)
+    {
+        if (!(check_pVertexInputState))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pVertexInputState inconsistent between guest and host\n");
+        }
+        unmarshal_VkPipelineVertexInputStateCreateInfo(vkStream, (VkPipelineVertexInputStateCreateInfo*)(forUnmarshaling->pVertexInputState));
+    }
+    // WARNING PTR CHECK
+    const VkPipelineTessellationStateCreateInfo* check_pTessellationState;
+    check_pTessellationState = (const VkPipelineTessellationStateCreateInfo*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pTessellationState)
+    {
+        if (!(check_pTessellationState))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pTessellationState inconsistent between guest and host\n");
+        }
+        unmarshal_VkPipelineTessellationStateCreateInfo(vkStream, (VkPipelineTessellationStateCreateInfo*)(forUnmarshaling->pTessellationState));
+    }
+}
+
+void marshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i)
+        {
+            marshal_VkGraphicsShaderGroupCreateInfoNV(vkStream, (const VkGraphicsShaderGroupCreateInfoNV*)(forMarshaling->pGroups + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->pipelineCount, sizeof(uint32_t));
+    if (forMarshaling->pipelineCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forMarshaling->pipelineCount * 8);
+        vkStream->handleMapping()->mapHandles_VkPipeline_u64(forMarshaling->pPipelines, cgen_var_0, forMarshaling->pipelineCount);
+        vkStream->write((uint64_t*)cgen_var_0, forMarshaling->pipelineCount * 8);
+    }
+}
+
+void unmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->groupCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->groupCount; ++i)
+        {
+            unmarshal_VkGraphicsShaderGroupCreateInfoNV(vkStream, (VkGraphicsShaderGroupCreateInfoNV*)(forUnmarshaling->pGroups + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->pipelineCount, sizeof(uint32_t));
+    if (forUnmarshaling->pipelineCount)
+    {
+        uint64_t* cgen_var_0;
+        vkStream->alloc((void**)&cgen_var_0, forUnmarshaling->pipelineCount * 8);
+        vkStream->read((uint64_t*)cgen_var_0, forUnmarshaling->pipelineCount * 8);
+        vkStream->handleMapping()->mapHandles_u64_VkPipeline(cgen_var_0, (VkPipeline*)forUnmarshaling->pPipelines, forUnmarshaling->pipelineCount);
+    }
+}
+
+void marshal_VkBindShaderGroupIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindShaderGroupIndirectCommandNV* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->groupIndex, sizeof(uint32_t));
+}
+
+void unmarshal_VkBindShaderGroupIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkBindShaderGroupIndirectCommandNV* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->groupIndex, sizeof(uint32_t));
+}
+
+void marshal_VkBindIndexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindIndexBufferIndirectCommandNV* forMarshaling)
+{
+    vkStream->write((VkDeviceAddress*)&forMarshaling->bufferAddress, sizeof(VkDeviceAddress));
+    vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
+    vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
+}
+
+void unmarshal_VkBindIndexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkBindIndexBufferIndirectCommandNV* forUnmarshaling)
+{
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->bufferAddress, sizeof(VkDeviceAddress));
+    vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
+    vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
+}
+
+void marshal_VkBindVertexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindVertexBufferIndirectCommandNV* forMarshaling)
+{
+    vkStream->write((VkDeviceAddress*)&forMarshaling->bufferAddress, sizeof(VkDeviceAddress));
+    vkStream->write((uint32_t*)&forMarshaling->size, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
+}
+
+void unmarshal_VkBindVertexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkBindVertexBufferIndirectCommandNV* forUnmarshaling)
+{
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->bufferAddress, sizeof(VkDeviceAddress));
+    vkStream->read((uint32_t*)&forUnmarshaling->size, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->stride, sizeof(uint32_t));
+}
+
+void marshal_VkSetStateFlagsIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkSetStateFlagsIndirectCommandNV* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->data, sizeof(uint32_t));
+}
+
+void unmarshal_VkSetStateFlagsIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkSetStateFlagsIndirectCommandNV* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->data, sizeof(uint32_t));
+}
+
+void marshal_VkIndirectCommandsStreamNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsStreamNV* forMarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkIndirectCommandsStreamNV(
+    VulkanStreamGuest* vkStream,
+    VkIndirectCommandsStreamNV* forUnmarshaling)
+{
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
+}
+
+void marshal_VkIndirectCommandsLayoutTokenNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutTokenNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkIndirectCommandsTokenTypeNV*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNV));
+    vkStream->write((uint32_t*)&forMarshaling->stream, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->vertexBindingUnit, sizeof(uint32_t));
+    vkStream->write((VkBool32*)&forMarshaling->vertexDynamicStride, sizeof(VkBool32));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->pushconstantPipelineLayout, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkShaderStageFlags*)&forMarshaling->pushconstantShaderStageFlags, sizeof(VkShaderStageFlags));
+    vkStream->write((uint32_t*)&forMarshaling->pushconstantOffset, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->pushconstantSize, sizeof(uint32_t));
+    vkStream->write((VkIndirectStateFlagsNV*)&forMarshaling->indirectStateFlags, sizeof(VkIndirectStateFlagsNV));
+    vkStream->write((uint32_t*)&forMarshaling->indexTypeCount, sizeof(uint32_t));
+    vkStream->write((const VkIndexType*)forMarshaling->pIndexTypes, forMarshaling->indexTypeCount * sizeof(const VkIndexType));
+    vkStream->write((const uint32_t*)forMarshaling->pIndexTypeValues, forMarshaling->indexTypeCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkIndirectCommandsLayoutTokenNV(
+    VulkanStreamGuest* vkStream,
+    VkIndirectCommandsLayoutTokenNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkIndirectCommandsTokenTypeNV*)&forUnmarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNV));
+    vkStream->read((uint32_t*)&forUnmarshaling->stream, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->offset, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->vertexBindingUnit, sizeof(uint32_t));
+    vkStream->read((VkBool32*)&forUnmarshaling->vertexDynamicStride, sizeof(VkBool32));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_0, (VkPipelineLayout*)&forUnmarshaling->pushconstantPipelineLayout, 1);
+    vkStream->read((VkShaderStageFlags*)&forUnmarshaling->pushconstantShaderStageFlags, sizeof(VkShaderStageFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->pushconstantOffset, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->pushconstantSize, sizeof(uint32_t));
+    vkStream->read((VkIndirectStateFlagsNV*)&forUnmarshaling->indirectStateFlags, sizeof(VkIndirectStateFlagsNV));
+    vkStream->read((uint32_t*)&forUnmarshaling->indexTypeCount, sizeof(uint32_t));
+    vkStream->read((VkIndexType*)forUnmarshaling->pIndexTypes, forUnmarshaling->indexTypeCount * sizeof(const VkIndexType));
+    vkStream->read((uint32_t*)forUnmarshaling->pIndexTypeValues, forUnmarshaling->indexTypeCount * sizeof(const uint32_t));
+}
+
+void marshal_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkIndirectCommandsLayoutUsageFlagsNV*)&forMarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNV));
+    vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    vkStream->write((uint32_t*)&forMarshaling->tokenCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->tokenCount; ++i)
+        {
+            marshal_VkIndirectCommandsLayoutTokenNV(vkStream, (const VkIndirectCommandsLayoutTokenNV*)(forMarshaling->pTokens + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->streamCount, sizeof(uint32_t));
+    vkStream->write((const uint32_t*)forMarshaling->pStreamStrides, forMarshaling->streamCount * sizeof(const uint32_t));
+}
+
+void unmarshal_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkIndirectCommandsLayoutCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkIndirectCommandsLayoutUsageFlagsNV*)&forUnmarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNV));
+    vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    vkStream->read((uint32_t*)&forUnmarshaling->tokenCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->tokenCount; ++i)
+        {
+            unmarshal_VkIndirectCommandsLayoutTokenNV(vkStream, (VkIndirectCommandsLayoutTokenNV*)(forUnmarshaling->pTokens + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->streamCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)forUnmarshaling->pStreamStrides, forUnmarshaling->streamCount * sizeof(const uint32_t));
+}
+
+void marshal_VkGeneratedCommandsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNV_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->streamCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->streamCount; ++i)
+        {
+            marshal_VkIndirectCommandsStreamNV(vkStream, (const VkIndirectCommandsStreamNV*)(forMarshaling->pStreams + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->sequencesCount, sizeof(uint32_t));
+    uint64_t cgen_var_2;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->preprocessBuffer, &cgen_var_2, 1);
+    vkStream->write((uint64_t*)&cgen_var_2, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->preprocessOffset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->preprocessSize, sizeof(VkDeviceSize));
+    uint64_t cgen_var_3;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesCountBuffer, &cgen_var_3, 1);
+    vkStream->write((uint64_t*)&cgen_var_3, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
+    uint64_t cgen_var_4;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->sequencesIndexBuffer, &cgen_var_4, 1);
+    vkStream->write((uint64_t*)&cgen_var_4, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkGeneratedCommandsInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGeneratedCommandsInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNV(&cgen_var_1, (VkIndirectCommandsLayoutNV*)&forUnmarshaling->indirectCommandsLayout, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->streamCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->streamCount; ++i)
+        {
+            unmarshal_VkIndirectCommandsStreamNV(vkStream, (VkIndirectCommandsStreamNV*)(forUnmarshaling->pStreams + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->sequencesCount, sizeof(uint32_t));
+    uint64_t cgen_var_2;
+    vkStream->read((uint64_t*)&cgen_var_2, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_2, (VkBuffer*)&forUnmarshaling->preprocessBuffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->preprocessOffset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->preprocessSize, sizeof(VkDeviceSize));
+    uint64_t cgen_var_3;
+    vkStream->read((uint64_t*)&cgen_var_3, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_3, (VkBuffer*)&forUnmarshaling->sequencesCountBuffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
+    uint64_t cgen_var_4;
+    vkStream->read((uint64_t*)&cgen_var_4, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_4, (VkBuffer*)&forUnmarshaling->sequencesIndexBuffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
+}
+
+void marshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->pipeline, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkIndirectCommandsLayoutNV_u64(&forMarshaling->indirectCommandsLayout, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineBindPoint*)&forUnmarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_0, (VkPipeline*)&forUnmarshaling->pipeline, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkIndirectCommandsLayoutNV(&cgen_var_1, (VkIndirectCommandsLayoutNV*)&forUnmarshaling->indirectCommandsLayout, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSequencesCount, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->texelBufferAlignment, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->texelBufferAlignment, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes, sizeof(VkDeviceSize));
+    vkStream->write((VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment, sizeof(VkBool32));
+    vkStream->write((VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes, sizeof(VkDeviceSize));
+    vkStream->write((VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->storageTexelBufferOffsetAlignmentBytes, sizeof(VkDeviceSize));
+    vkStream->read((VkBool32*)&forUnmarshaling->storageTexelBufferOffsetSingleTexelAlignment, sizeof(VkBool32));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->uniformTexelBufferOffsetAlignmentBytes, sizeof(VkDeviceSize));
+    vkStream->read((VkBool32*)&forUnmarshaling->uniformTexelBufferOffsetSingleTexelAlignment, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void marshal_VkRenderPassTransformBeginInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassTransformBeginInfoQCOM* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+}
+
+void unmarshal_VkRenderPassTransformBeginInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    VkRenderPassTransformBeginInfoQCOM* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+}
+
+void marshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+    marshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->renderArea));
+}
+
+void unmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+    unmarshal_VkRect2D(vkStream, (VkRect2D*)(&forUnmarshaling->renderArea));
+}
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->deviceMemoryReport, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->deviceMemoryReport, sizeof(VkBool32));
+}
+
+void marshal_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryReportCallbackDataEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDeviceMemoryReportFlagsEXT));
+    vkStream->write((VkDeviceMemoryReportEventTypeEXT*)&forMarshaling->type, sizeof(VkDeviceMemoryReportEventTypeEXT));
+    vkStream->write((uint64_t*)&forMarshaling->memoryObjectId, sizeof(uint64_t));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    vkStream->write((VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
+    vkStream->write((uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
+    vkStream->write((uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
+}
+
+void unmarshal_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanStreamGuest* vkStream,
+    VkDeviceMemoryReportCallbackDataEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDeviceMemoryReportFlagsEXT));
+    vkStream->read((VkDeviceMemoryReportEventTypeEXT*)&forUnmarshaling->type, sizeof(VkDeviceMemoryReportEventTypeEXT));
+    vkStream->read((uint64_t*)&forUnmarshaling->memoryObjectId, sizeof(uint64_t));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+    vkStream->read((VkObjectType*)&forUnmarshaling->objectType, sizeof(VkObjectType));
+    vkStream->read((uint64_t*)&forUnmarshaling->objectHandle, sizeof(uint64_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->heapIndex, sizeof(uint32_t));
+}
+
+void marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDeviceMemoryReportFlagsEXT));
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
+    vkStream->putBe64(cgen_var_0);
+    vkStream->write((void*)forMarshaling->pUserData, sizeof(uint8_t));
+}
+
+void unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceMemoryReportFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDeviceMemoryReportFlagsEXT));
+    forUnmarshaling->pfnUserCallback = (PFN_vkDeviceMemoryReportCallbackEXT)vkStream->getBe64();
+    vkStream->read((void*)forUnmarshaling->pUserData, sizeof(uint8_t));
+}
+
+#endif
+#ifdef VK_EXT_robustness2
+void marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->robustBufferAccess2, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->robustImageAccess2, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->nullDescriptor, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRobustness2FeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->robustBufferAccess2, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess2, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->nullDescriptor, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)&forMarshaling->robustStorageBufferAccessSizeAlignment, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->robustUniformBufferAccessSizeAlignment, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRobustness2PropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->robustStorageBufferAccessSizeAlignment, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->robustUniformBufferAccessSizeAlignment, sizeof(VkDeviceSize));
+}
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void marshal_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forMarshaling->customBorderColor));
+    vkStream->write((VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+}
+
+void unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkSamplerCustomBorderColorCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forUnmarshaling->customBorderColor));
+    vkStream->read((VkFormat*)&forUnmarshaling->format, sizeof(VkFormat));
+}
+
+void marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
+}
+
+void marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->customBorderColors, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->customBorderColors, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void marshal_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePrivateDataFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->privateData, sizeof(VkBool32));
+}
+
+void marshal_VkDevicePrivateDataCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDevicePrivateDataCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
+}
+
+void unmarshal_VkDevicePrivateDataCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDevicePrivateDataCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
+}
+
+void marshal_VkPrivateDataSlotCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPrivateDataSlotCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPrivateDataSlotCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPrivateDataSlotCreateFlagsEXT));
+}
+
+void unmarshal_VkPrivateDataSlotCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPrivateDataSlotCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPrivateDataSlotCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkPrivateDataSlotCreateFlagsEXT));
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void marshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void marshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->diagnosticsConfig, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->diagnosticsConfig, sizeof(VkBool32));
+}
+
+void marshal_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceDiagnosticsConfigFlagsNV*)&forMarshaling->flags, sizeof(VkDeviceDiagnosticsConfigFlagsNV));
+}
+
+void unmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkDeviceDiagnosticsConfigCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceDiagnosticsConfigFlagsNV*)&forUnmarshaling->flags, sizeof(VkDeviceDiagnosticsConfigFlagsNV));
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void marshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->fragmentShadingRateEnums, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->supersampleFragmentShadingRates, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->noInvocationFragmentShadingRates, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentShadingRateEnums, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->supersampleFragmentShadingRates, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->noInvocationFragmentShadingRates, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSampleCountFlagBits*)&forMarshaling->maxFragmentShadingRateInvocationCount, sizeof(VkSampleCountFlagBits));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSampleCountFlagBits*)&forUnmarshaling->maxFragmentShadingRateInvocationCount, sizeof(VkSampleCountFlagBits));
+}
+
+void marshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkFragmentShadingRateTypeNV*)&forMarshaling->shadingRateType, sizeof(VkFragmentShadingRateTypeNV));
+    vkStream->write((VkFragmentShadingRateNV*)&forMarshaling->shadingRate, sizeof(VkFragmentShadingRateNV));
+    vkStream->write((VkFragmentShadingRateCombinerOpKHR*)forMarshaling->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+}
+
+void unmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFragmentShadingRateTypeNV*)&forUnmarshaling->shadingRateType, sizeof(VkFragmentShadingRateTypeNV));
+    vkStream->read((VkFragmentShadingRateNV*)&forUnmarshaling->shadingRate, sizeof(VkFragmentShadingRateNV));
+    vkStream->read((VkFragmentShadingRateCombinerOpKHR*)forUnmarshaling->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+}
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->fragmentDensityMapDeferred, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->fragmentDensityMapDeferred, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->subsampledLoads, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->subsampledCoarseReconstructionEarlyAccess, sizeof(VkBool32));
+    vkStream->write((uint32_t*)&forMarshaling->maxSubsampledArrayLayers, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetSubsampledSamplers, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->subsampledLoads, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->subsampledCoarseReconstructionEarlyAccess, sizeof(VkBool32));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxSubsampledArrayLayers, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetSubsampledSamplers, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void marshal_VkCopyCommandTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCopyCommandTransformInfoQCOM* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+}
+
+void unmarshal_VkCopyCommandTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    VkCopyCommandTransformInfoQCOM* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkSurfaceTransformFlagBitsKHR*)&forUnmarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+}
+
+#endif
+#ifdef VK_EXT_image_robustness
+void marshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->robustImageAccess, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_4444_formats
+void marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->formatA4R4G4B4, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->formatA4B4G4R4, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevice4444FormatsFeaturesEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->formatA4R4G4B4, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->formatA4B4G4R4, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void marshal_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDirectFBSurfaceCreateInfoEXT* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDirectFBSurfaceCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkDirectFBSurfaceCreateFlagsEXT));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->dfb;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->dfb)
+    {
+        vkStream->write((IDirectFB*)forMarshaling->dfb, sizeof(IDirectFB));
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->surface;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->surface)
+    {
+        vkStream->write((IDirectFBSurface*)forMarshaling->surface, sizeof(IDirectFBSurface));
+    }
+}
+
+void unmarshal_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDirectFBSurfaceCreateInfoEXT* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDirectFBSurfaceCreateFlagsEXT*)&forUnmarshaling->flags, sizeof(VkDirectFBSurfaceCreateFlagsEXT));
+    // WARNING PTR CHECK
+    IDirectFB* check_dfb;
+    check_dfb = (IDirectFB*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->dfb)
+    {
+        if (!(check_dfb))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->dfb inconsistent between guest and host\n");
+        }
+        vkStream->read((IDirectFB*)forUnmarshaling->dfb, sizeof(IDirectFB));
+    }
+    // WARNING PTR CHECK
+    IDirectFBSurface* check_surface;
+    check_surface = (IDirectFBSurface*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->surface)
+    {
+        if (!(check_surface))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->surface inconsistent between guest and host\n");
+        }
+        vkStream->read((IDirectFBSurface*)forUnmarshaling->surface, sizeof(IDirectFBSurface));
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void marshal_VkDeviceOrHostAddressKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressKHR* forMarshaling)
+{
+    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void unmarshal_VkDeviceOrHostAddressKHR(
+    VulkanStreamGuest* vkStream,
+    VkDeviceOrHostAddressKHR* forUnmarshaling)
+{
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void marshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling)
+{
+    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void unmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkDeviceOrHostAddressConstKHR* forUnmarshaling)
+{
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void marshal_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildRangeInfoKHR* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->primitiveCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->primitiveOffset, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->transformOffset, sizeof(uint32_t));
+}
+
+void unmarshal_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureBuildRangeInfoKHR* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->primitiveCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->primitiveOffset, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->firstVertex, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->transformOffset, sizeof(uint32_t));
+}
+
+void marshal_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkFormat*)&forMarshaling->vertexFormat, sizeof(VkFormat));
+    marshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->vertexData));
+    vkStream->write((VkDeviceSize*)&forMarshaling->vertexStride, sizeof(VkDeviceSize));
+    vkStream->write((uint32_t*)&forMarshaling->maxVertex, sizeof(uint32_t));
+    vkStream->write((VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
+    marshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->indexData));
+    marshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->transformData));
+}
+
+void unmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryTrianglesDataKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkFormat*)&forUnmarshaling->vertexFormat, sizeof(VkFormat));
+    unmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->vertexData));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->vertexStride, sizeof(VkDeviceSize));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxVertex, sizeof(uint32_t));
+    vkStream->read((VkIndexType*)&forUnmarshaling->indexType, sizeof(VkIndexType));
+    unmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->indexData));
+    unmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->transformData));
+}
+
+void marshal_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryAabbsDataKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->data));
+    vkStream->write((VkDeviceSize*)&forMarshaling->stride, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryAabbsDataKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->data));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->stride, sizeof(VkDeviceSize));
+}
+
+void marshal_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryInstancesDataKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->arrayOfPointers, sizeof(VkBool32));
+    marshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->data));
+}
+
+void unmarshal_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryInstancesDataKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->arrayOfPointers, sizeof(VkBool32));
+    unmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->data));
+}
+
+void marshal_VkAccelerationStructureGeometryDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryDataKHR* forMarshaling)
+{
+    marshal_VkAccelerationStructureGeometryTrianglesDataKHR(vkStream, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&forMarshaling->triangles));
+}
+
+void unmarshal_VkAccelerationStructureGeometryDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryDataKHR* forUnmarshaling)
+{
+    unmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(vkStream, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&forUnmarshaling->triangles));
+}
+
+void marshal_VkAccelerationStructureGeometryKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkGeometryTypeKHR*)&forMarshaling->geometryType, sizeof(VkGeometryTypeKHR));
+    marshal_VkAccelerationStructureGeometryDataKHR(vkStream, (VkAccelerationStructureGeometryDataKHR*)(&forMarshaling->geometry));
+    vkStream->write((VkGeometryFlagsKHR*)&forMarshaling->flags, sizeof(VkGeometryFlagsKHR));
+}
+
+void unmarshal_VkAccelerationStructureGeometryKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkGeometryTypeKHR*)&forUnmarshaling->geometryType, sizeof(VkGeometryTypeKHR));
+    unmarshal_VkAccelerationStructureGeometryDataKHR(vkStream, (VkAccelerationStructureGeometryDataKHR*)(&forUnmarshaling->geometry));
+    vkStream->read((VkGeometryFlagsKHR*)&forUnmarshaling->flags, sizeof(VkGeometryFlagsKHR));
+}
+
+void marshal_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildGeometryInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAccelerationStructureTypeKHR*)&forMarshaling->type, sizeof(VkAccelerationStructureTypeKHR));
+    vkStream->write((VkBuildAccelerationStructureFlagsKHR*)&forMarshaling->flags, sizeof(VkBuildAccelerationStructureFlagsKHR));
+    vkStream->write((VkBuildAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkBuildAccelerationStructureModeKHR));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->srcAccelerationStructure, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->dstAccelerationStructure, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((uint32_t*)&forMarshaling->geometryCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pGeometries;
+    vkStream->putBe64(cgen_var_2);
+    if (forMarshaling->pGeometries)
+    {
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forMarshaling->geometryCount; ++i)
+            {
+                marshal_VkAccelerationStructureGeometryKHR(vkStream, (const VkAccelerationStructureGeometryKHR*)(forMarshaling->pGeometries + i));
+            }
+        }
+    }
+    marshal_VkDeviceOrHostAddressKHR(vkStream, (VkDeviceOrHostAddressKHR*)(&forMarshaling->scratchData));
+}
+
+void unmarshal_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureBuildGeometryInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAccelerationStructureTypeKHR*)&forUnmarshaling->type, sizeof(VkAccelerationStructureTypeKHR));
+    vkStream->read((VkBuildAccelerationStructureFlagsKHR*)&forUnmarshaling->flags, sizeof(VkBuildAccelerationStructureFlagsKHR));
+    vkStream->read((VkBuildAccelerationStructureModeKHR*)&forUnmarshaling->mode, sizeof(VkBuildAccelerationStructureModeKHR));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->srcAccelerationStructure, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_1, (VkAccelerationStructureKHR*)&forUnmarshaling->dstAccelerationStructure, 1);
+    vkStream->read((uint32_t*)&forUnmarshaling->geometryCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkAccelerationStructureGeometryKHR* check_pGeometries;
+    check_pGeometries = (const VkAccelerationStructureGeometryKHR*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pGeometries)
+    {
+        if (!(check_pGeometries))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pGeometries inconsistent between guest and host\n");
+        }
+        if ((forUnmarshaling) != nullptr)
+        {
+            for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->geometryCount; ++i)
+            {
+                unmarshal_VkAccelerationStructureGeometryKHR(vkStream, (VkAccelerationStructureGeometryKHR*)(forUnmarshaling->pGeometries + i));
+            }
+        }
+    }
+    unmarshal_VkDeviceOrHostAddressKHR(vkStream, (VkDeviceOrHostAddressKHR*)(&forUnmarshaling->scratchData));
+}
+
+void marshal_VkAccelerationStructureCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkAccelerationStructureCreateFlagsKHR*)&forMarshaling->createFlags, sizeof(VkAccelerationStructureCreateFlagsKHR));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkBuffer_u64(&forMarshaling->buffer, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    vkStream->write((VkAccelerationStructureTypeKHR*)&forMarshaling->type, sizeof(VkAccelerationStructureTypeKHR));
+    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void unmarshal_VkAccelerationStructureCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureCreateInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkAccelerationStructureCreateFlagsKHR*)&forUnmarshaling->createFlags, sizeof(VkAccelerationStructureCreateFlagsKHR));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkBuffer(&cgen_var_0, (VkBuffer*)&forUnmarshaling->buffer, 1);
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->offset, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+    vkStream->read((VkAccelerationStructureTypeKHR*)&forUnmarshaling->type, sizeof(VkAccelerationStructureTypeKHR));
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
+}
+
+void marshal_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->accelerationStructureCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAccelerationStructures;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pAccelerationStructures)
+    {
+        if (forMarshaling->accelerationStructureCount)
+        {
+            uint64_t* cgen_var_0_0;
+            vkStream->alloc((void**)&cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
+            vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(forMarshaling->pAccelerationStructures, cgen_var_0_0, forMarshaling->accelerationStructureCount);
+            vkStream->write((uint64_t*)cgen_var_0_0, forMarshaling->accelerationStructureCount * 8);
+        }
+    }
+}
+
+void unmarshal_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanStreamGuest* vkStream,
+    VkWriteDescriptorSetAccelerationStructureKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->accelerationStructureCount, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkAccelerationStructureKHR* check_pAccelerationStructures;
+    check_pAccelerationStructures = (const VkAccelerationStructureKHR*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pAccelerationStructures)
+    {
+        if (!(check_pAccelerationStructures))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pAccelerationStructures inconsistent between guest and host\n");
+        }
+        if (forUnmarshaling->accelerationStructureCount)
+        {
+            uint64_t* cgen_var_0_0;
+            vkStream->alloc((void**)&cgen_var_0_0, forUnmarshaling->accelerationStructureCount * 8);
+            vkStream->read((uint64_t*)cgen_var_0_0, forUnmarshaling->accelerationStructureCount * 8);
+            vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(cgen_var_0_0, (VkAccelerationStructureKHR*)forUnmarshaling->pAccelerationStructures, forUnmarshaling->accelerationStructureCount);
+        }
+    }
+}
+
+void marshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->accelerationStructure, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->accelerationStructureCaptureReplay, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->accelerationStructureIndirectBuild, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->accelerationStructureHostCommands, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->descriptorBindingAccelerationStructureUpdateAfterBind, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructure, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructureCaptureReplay, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructureIndirectBuild, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->accelerationStructureHostCommands, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->descriptorBindingAccelerationStructureUpdateAfterBind, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint64_t*)&forMarshaling->maxGeometryCount, sizeof(uint64_t));
+    vkStream->write((uint64_t*)&forMarshaling->maxInstanceCount, sizeof(uint64_t));
+    vkStream->write((uint64_t*)&forMarshaling->maxPrimitiveCount, sizeof(uint64_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorAccelerationStructures, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindAccelerationStructures, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetAccelerationStructures, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindAccelerationStructures, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->minAccelerationStructureScratchOffsetAlignment, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxGeometryCount, sizeof(uint64_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxInstanceCount, sizeof(uint64_t));
+    vkStream->read((uint64_t*)&forUnmarshaling->maxPrimitiveCount, sizeof(uint64_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorAccelerationStructures, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPerStageDescriptorUpdateAfterBindAccelerationStructures, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetAccelerationStructures, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxDescriptorSetUpdateAfterBindAccelerationStructures, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->minAccelerationStructureScratchOffsetAlignment, sizeof(uint32_t));
+}
+
+void marshal_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureDeviceAddressInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->accelerationStructure, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+}
+
+void unmarshal_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureDeviceAddressInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->accelerationStructure, 1);
+}
+
+void marshal_VkAccelerationStructureVersionInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureVersionInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((const uint8_t*)forMarshaling->pVersionData, 2*VK_UUID_SIZE * sizeof(const uint8_t));
+}
+
+void unmarshal_VkAccelerationStructureVersionInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureVersionInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint8_t*)forUnmarshaling->pVersionData, 2*VK_UUID_SIZE * sizeof(const uint8_t));
+}
+
+void marshal_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->src, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    marshal_VkDeviceOrHostAddressKHR(vkStream, (VkDeviceOrHostAddressKHR*)(&forMarshaling->dst));
+    vkStream->write((VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+}
+
+void unmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyAccelerationStructureToMemoryInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->src, 1);
+    unmarshal_VkDeviceOrHostAddressKHR(vkStream, (VkDeviceOrHostAddressKHR*)(&forUnmarshaling->dst));
+    vkStream->read((VkCopyAccelerationStructureModeKHR*)&forUnmarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+}
+
+void marshal_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    marshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->src));
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->dst, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->write((VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+}
+
+void unmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyMemoryToAccelerationStructureInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    unmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forUnmarshaling->src));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->dst, 1);
+    vkStream->read((VkCopyAccelerationStructureModeKHR*)&forUnmarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+}
+
+void marshal_VkCopyAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    uint64_t cgen_var_0;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->src, &cgen_var_0, 1);
+    vkStream->write((uint64_t*)&cgen_var_0, 1 * 8);
+    uint64_t cgen_var_1;
+    vkStream->handleMapping()->mapHandles_VkAccelerationStructureKHR_u64(&forMarshaling->dst, &cgen_var_1, 1);
+    vkStream->write((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->write((VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+}
+
+void unmarshal_VkCopyAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyAccelerationStructureInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    uint64_t cgen_var_0;
+    vkStream->read((uint64_t*)&cgen_var_0, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_0, (VkAccelerationStructureKHR*)&forUnmarshaling->src, 1);
+    uint64_t cgen_var_1;
+    vkStream->read((uint64_t*)&cgen_var_1, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkAccelerationStructureKHR(&cgen_var_1, (VkAccelerationStructureKHR*)&forUnmarshaling->dst, 1);
+    vkStream->read((VkCopyAccelerationStructureModeKHR*)&forUnmarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+}
+
+void marshal_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildSizesInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkDeviceSize*)&forMarshaling->accelerationStructureSize, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->updateScratchSize, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->buildScratchSize, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureBuildSizesInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->accelerationStructureSize, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->updateScratchSize, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->buildScratchSize, sizeof(VkDeviceSize));
+}
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void marshal_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkRayTracingShaderGroupTypeKHR*)&forMarshaling->type, sizeof(VkRayTracingShaderGroupTypeKHR));
+    vkStream->write((uint32_t*)&forMarshaling->generalShader, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->closestHitShader, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->anyHitShader, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->intersectionShader, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pShaderGroupCaptureReplayHandle;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pShaderGroupCaptureReplayHandle)
+    {
+        vkStream->write((const void*)forMarshaling->pShaderGroupCaptureReplayHandle, sizeof(const uint8_t));
+    }
+}
+
+void unmarshal_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingShaderGroupCreateInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkRayTracingShaderGroupTypeKHR*)&forUnmarshaling->type, sizeof(VkRayTracingShaderGroupTypeKHR));
+    vkStream->read((uint32_t*)&forUnmarshaling->generalShader, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->closestHitShader, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->anyHitShader, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->intersectionShader, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const void* check_pShaderGroupCaptureReplayHandle;
+    check_pShaderGroupCaptureReplayHandle = (const void*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pShaderGroupCaptureReplayHandle)
+    {
+        if (!(check_pShaderGroupCaptureReplayHandle))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pShaderGroupCaptureReplayHandle inconsistent between guest and host\n");
+        }
+        vkStream->read((void*)forUnmarshaling->pShaderGroupCaptureReplayHandle, sizeof(const uint8_t));
+    }
+}
+
+void marshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->maxPipelineRayPayloadSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxPipelineRayHitAttributeSize, sizeof(uint32_t));
+}
+
+void unmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineRayPayloadSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineRayHitAttributeSize, sizeof(uint32_t));
+}
+
+void marshal_VkRayTracingPipelineCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
+    vkStream->write((uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+        {
+            marshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
+    if ((forMarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i)
+        {
+            marshal_VkRayTracingShaderGroupCreateInfoKHR(vkStream, (const VkRayTracingShaderGroupCreateInfoKHR*)(forMarshaling->pGroups + i));
+        }
+    }
+    vkStream->write((uint32_t*)&forMarshaling->maxPipelineRayRecursionDepth, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pLibraryInfo;
+    vkStream->putBe64(cgen_var_0);
+    if (forMarshaling->pLibraryInfo)
+    {
+        marshal_VkPipelineLibraryCreateInfoKHR(vkStream, (const VkPipelineLibraryCreateInfoKHR*)(forMarshaling->pLibraryInfo));
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pLibraryInterface;
+    vkStream->putBe64(cgen_var_1);
+    if (forMarshaling->pLibraryInterface)
+    {
+        marshal_VkRayTracingPipelineInterfaceCreateInfoKHR(vkStream, (const VkRayTracingPipelineInterfaceCreateInfoKHR*)(forMarshaling->pLibraryInterface));
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
+    vkStream->putBe64(cgen_var_2);
+    if (forMarshaling->pDynamicState)
+    {
+        marshal_VkPipelineDynamicStateCreateInfo(vkStream, (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState));
+    }
+    uint64_t cgen_var_3;
+    vkStream->handleMapping()->mapHandles_VkPipelineLayout_u64(&forMarshaling->layout, &cgen_var_3, 1);
+    vkStream->write((uint64_t*)&cgen_var_3, 1 * 8);
+    uint64_t cgen_var_4;
+    vkStream->handleMapping()->mapHandles_VkPipeline_u64(&forMarshaling->basePipelineHandle, &cgen_var_4, 1);
+    vkStream->write((uint64_t*)&cgen_var_4, 1 * 8);
+    vkStream->write((int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
+}
+
+void unmarshal_VkRayTracingPipelineCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingPipelineCreateInfoKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkPipelineCreateFlags*)&forUnmarshaling->flags, sizeof(VkPipelineCreateFlags));
+    vkStream->read((uint32_t*)&forUnmarshaling->stageCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->stageCount; ++i)
+        {
+            unmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(forUnmarshaling->pStages + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->groupCount, sizeof(uint32_t));
+    if ((forUnmarshaling) != nullptr)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forUnmarshaling->groupCount; ++i)
+        {
+            unmarshal_VkRayTracingShaderGroupCreateInfoKHR(vkStream, (VkRayTracingShaderGroupCreateInfoKHR*)(forUnmarshaling->pGroups + i));
+        }
+    }
+    vkStream->read((uint32_t*)&forUnmarshaling->maxPipelineRayRecursionDepth, sizeof(uint32_t));
+    // WARNING PTR CHECK
+    const VkPipelineLibraryCreateInfoKHR* check_pLibraryInfo;
+    check_pLibraryInfo = (const VkPipelineLibraryCreateInfoKHR*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pLibraryInfo)
+    {
+        if (!(check_pLibraryInfo))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pLibraryInfo inconsistent between guest and host\n");
+        }
+        unmarshal_VkPipelineLibraryCreateInfoKHR(vkStream, (VkPipelineLibraryCreateInfoKHR*)(forUnmarshaling->pLibraryInfo));
+    }
+    // WARNING PTR CHECK
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* check_pLibraryInterface;
+    check_pLibraryInterface = (const VkRayTracingPipelineInterfaceCreateInfoKHR*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pLibraryInterface)
+    {
+        if (!(check_pLibraryInterface))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pLibraryInterface inconsistent between guest and host\n");
+        }
+        unmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(vkStream, (VkRayTracingPipelineInterfaceCreateInfoKHR*)(forUnmarshaling->pLibraryInterface));
+    }
+    // WARNING PTR CHECK
+    const VkPipelineDynamicStateCreateInfo* check_pDynamicState;
+    check_pDynamicState = (const VkPipelineDynamicStateCreateInfo*)(uintptr_t)vkStream->getBe64();
+    if (forUnmarshaling->pDynamicState)
+    {
+        if (!(check_pDynamicState))
+        {
+            fprintf(stderr, "fatal: forUnmarshaling->pDynamicState inconsistent between guest and host\n");
+        }
+        unmarshal_VkPipelineDynamicStateCreateInfo(vkStream, (VkPipelineDynamicStateCreateInfo*)(forUnmarshaling->pDynamicState));
+    }
+    uint64_t cgen_var_3;
+    vkStream->read((uint64_t*)&cgen_var_3, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipelineLayout(&cgen_var_3, (VkPipelineLayout*)&forUnmarshaling->layout, 1);
+    uint64_t cgen_var_4;
+    vkStream->read((uint64_t*)&cgen_var_4, 1 * 8);
+    vkStream->handleMapping()->mapHandles_u64_VkPipeline(&cgen_var_4, (VkPipeline*)&forUnmarshaling->basePipelineHandle, 1);
+    vkStream->read((int32_t*)&forUnmarshaling->basePipelineIndex, sizeof(int32_t));
+}
+
+void marshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->rayTracingPipeline, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->rayTracingPipelineShaderGroupHandleCaptureReplay, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->rayTracingPipelineShaderGroupHandleCaptureReplayMixed, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->rayTracingPipelineTraceRaysIndirect, sizeof(VkBool32));
+    vkStream->write((VkBool32*)&forMarshaling->rayTraversalPrimitiveCulling, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipeline, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipelineShaderGroupHandleCaptureReplay, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipelineShaderGroupHandleCaptureReplayMixed, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayTracingPipelineTraceRaysIndirect, sizeof(VkBool32));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayTraversalPrimitiveCulling, sizeof(VkBool32));
+}
+
+void marshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleSize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxRayRecursionDepth, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxShaderGroupStride, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleCaptureReplaySize, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxRayDispatchInvocationCount, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->shaderGroupHandleAlignment, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->maxRayHitAttributeSize, sizeof(uint32_t));
+}
+
+void unmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleSize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxRayRecursionDepth, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxShaderGroupStride, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleCaptureReplaySize, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxRayDispatchInvocationCount, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->shaderGroupHandleAlignment, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->maxRayHitAttributeSize, sizeof(uint32_t));
+}
+
+void marshal_VkStridedDeviceAddressRegionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkStridedDeviceAddressRegionKHR* forMarshaling)
+{
+    vkStream->write((VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    vkStream->write((VkDeviceSize*)&forMarshaling->stride, sizeof(VkDeviceSize));
+    vkStream->write((VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+}
+
+void unmarshal_VkStridedDeviceAddressRegionKHR(
+    VulkanStreamGuest* vkStream,
+    VkStridedDeviceAddressRegionKHR* forUnmarshaling)
+{
+    vkStream->read((VkDeviceAddress*)&forUnmarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->stride, sizeof(VkDeviceSize));
+    vkStream->read((VkDeviceSize*)&forUnmarshaling->size, sizeof(VkDeviceSize));
+}
+
+void marshal_VkTraceRaysIndirectCommandKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTraceRaysIndirectCommandKHR* forMarshaling)
+{
+    vkStream->write((uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    vkStream->write((uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
+}
+
+void unmarshal_VkTraceRaysIndirectCommandKHR(
+    VulkanStreamGuest* vkStream,
+    VkTraceRaysIndirectCommandKHR* forUnmarshaling)
+{
+    vkStream->read((uint32_t*)&forUnmarshaling->width, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->height, sizeof(uint32_t));
+    vkStream->read((uint32_t*)&forUnmarshaling->depth, sizeof(uint32_t));
+}
+
+#endif
+#ifdef VK_KHR_ray_query
+void marshal_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* forMarshaling)
+{
+    vkStream->write((VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    marshal_extension_struct(vkStream, forMarshaling->pNext);
+    vkStream->write((VkBool32*)&forMarshaling->rayQuery, sizeof(VkBool32));
+}
+
+void unmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayQueryFeaturesKHR* forUnmarshaling)
+{
+    vkStream->read((VkStructureType*)&forUnmarshaling->sType, sizeof(VkStructureType));
+    unmarshal_extension_struct(vkStream, (void*)(forUnmarshaling->pNext));
+    vkStream->read((VkBool32*)&forUnmarshaling->rayQuery, sizeof(VkBool32));
+}
+
 #endif
 void marshal_extension_struct(
     VulkanStreamGuest* vkStream,
@@ -10507,9 +17095,9 @@
             marshal_VkPhysicalDeviceMultiviewProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            marshal_VkPhysicalDeviceVariablePointerFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension));
+            marshal_VkPhysicalDeviceVariablePointersFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -10597,9 +17185,201 @@
             marshal_VkPhysicalDeviceMaintenance3Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            marshal_VkPhysicalDeviceShaderDrawParameterFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension));
+            marshal_VkPhysicalDeviceShaderDrawParametersFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            marshal_VkPhysicalDeviceVulkan11Features(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceVulkan11Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            marshal_VkPhysicalDeviceVulkan12Features(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceVulkan12Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            marshal_VkImageFormatListCreateInfo(vkStream, reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            marshal_VkPhysicalDevice8BitStorageFeatures(vkStream, reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceDriverProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            marshal_VkPhysicalDeviceShaderAtomicInt64Features(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            marshal_VkPhysicalDeviceShaderFloat16Int8Features(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceFloatControlsProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(vkStream, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            marshal_VkPhysicalDeviceDescriptorIndexingFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceDescriptorIndexingProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            marshal_VkSubpassDescriptionDepthStencilResolve(vkStream, reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceDepthStencilResolveProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            marshal_VkImageStencilUsageCreateInfo(vkStream, reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            marshal_VkSamplerReductionModeCreateInfo(vkStream, reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            marshal_VkPhysicalDeviceImagelessFramebufferFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            marshal_VkFramebufferAttachmentsCreateInfo(vkStream, reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            marshal_VkRenderPassAttachmentBeginInfo(vkStream, reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            marshal_VkAttachmentReferenceStencilLayout(vkStream, reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            marshal_VkAttachmentDescriptionStencilLayout(vkStream, reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            marshal_VkPhysicalDeviceHostQueryResetFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            marshal_VkPhysicalDeviceTimelineSemaphoreProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            marshal_VkSemaphoreTypeCreateInfo(vkStream, reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            marshal_VkTimelineSemaphoreSubmitInfo(vkStream, reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            marshal_VkBufferOpaqueCaptureAddressCreateInfo(vkStream, reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(vkStream, reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension));
             break;
         }
 #endif
@@ -10698,24 +17478,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            marshal_VkImageFormatListCreateInfoKHR(vkStream, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension));
+            marshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            marshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            marshal_VkQueryPoolPerformanceCreateInfoKHR(vkStream, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            marshal_VkPerformanceQuerySubmitInfoKHR(vkStream, reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>(structExtension));
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            marshal_VkPhysicalDevice8BitStorageFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension));
+            marshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            marshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension));
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            marshal_VkPhysicalDeviceShaderFloat16Int8Features(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension));
+            marshal_VkPhysicalDeviceShaderClockFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            marshal_VkFragmentShadingRateAttachmentInfoKHR(vkStream, reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            marshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(vkStream, reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            marshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            marshal_VkSurfaceProtectedCapabilitiesKHR(vkStream, reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension));
             break;
         }
 #endif
@@ -10757,6 +17600,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -10764,6 +17624,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -10802,6 +17669,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            marshal_VkImageViewASTCDecodeModeEXT(vkStream, reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -10873,6 +17759,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -10902,15 +17800,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            marshal_VkSamplerReductionModeCreateInfoEXT(vkStream, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension));
+            marshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension));
+            marshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            marshal_VkWriteDescriptorSetInlineUniformBlockEXT(vkStream, reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            marshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension));
             break;
         }
 #endif
@@ -10967,6 +17875,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            marshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            marshal_VkDrmFormatModifierPropertiesListEXT(vkStream, reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            marshal_VkImageDrmFormatModifierListCreateInfoEXT(vkStream, reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(vkStream, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -10974,30 +17916,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension));
+            marshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension));
+            marshal_VkPhysicalDeviceShadingRateImageFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension));
+            marshal_VkPhysicalDeviceShadingRateImagePropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension));
+            marshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension));
+            marshal_VkWriteDescriptorSetAccelerationStructureNV(vkStream, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            marshal_VkPhysicalDeviceRayTracingPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            marshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            marshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            marshal_VkFilterCubicImageViewImageFormatPropertiesEXT(vkStream, reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension));
             break;
         }
 #endif
@@ -11020,6 +17993,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            marshal_VkPipelineCompilerControlCreateInfoAMD(vkStream, reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -11027,6 +18007,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            marshal_VkDeviceMemoryOverallocationCreateInfoAMD(vkStream, reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -11038,6 +18025,70 @@
             marshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension));
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            marshal_VkPresentFrameTokenGGP(vkStream, reinterpret_cast<const VkPresentFrameTokenGGP*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            marshal_VkPipelineCreationFeedbackCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceMeshShaderFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            marshal_VkPhysicalDeviceMeshShaderPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            marshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension));
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -11046,6 +18097,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            marshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            marshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(vkStream, reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            marshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(vkStream, reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            marshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(vkStream, reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -11063,6 +18147,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            marshal_VkPhysicalDeviceShaderCoreProperties2AMD(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            marshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(vkStream, reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            marshal_VkMemoryPriorityAllocateInfoEXT(vkStream, reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            marshal_VkBufferDeviceAddressCreateInfoEXT(vkStream, reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            marshal_VkValidationFeaturesEXT(vkStream, reinterpret_cast<const VkValidationFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            marshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            marshal_VkPipelineCoverageReductionStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            marshal_VkSurfaceFullScreenExclusiveInfoEXT(vkStream, reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            marshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(vkStream, reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            marshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(vkStream, reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            marshal_VkPipelineRasterizationLineStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            marshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            marshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(vkStream, reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            marshal_VkRenderPassTransformBeginInfoQCOM(vkStream, reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            marshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(vkStream, reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(vkStream, reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceRobustness2FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceRobustness2PropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            marshal_VkSamplerCustomBorderColorCreateInfoEXT(vkStream, reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDevicePrivateDataFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            marshal_VkDevicePrivateDataCreateInfoEXT(vkStream, reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            marshal_VkDeviceDiagnosticsConfigCreateInfoNV(vkStream, reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            marshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            marshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            marshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            marshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            marshal_VkCopyCommandTransformInfoQCOM(vkStream, reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            marshal_VkPhysicalDevice4444FormatsFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            marshal_VkWriteDescriptorSetAccelerationStructureKHR(vkStream, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            marshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            marshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            marshal_VkPhysicalDeviceRayQueryFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension));
+            break;
+        }
+#endif
         default:
         {
             // fatal; the switch is only taken if the extension struct is known
@@ -11204,9 +18670,9 @@
             unmarshal_VkPhysicalDeviceMultiviewProperties(vkStream, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            unmarshal_VkPhysicalDeviceVariablePointerFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
+            unmarshal_VkPhysicalDeviceVariablePointersFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -11294,9 +18760,201 @@
             unmarshal_VkPhysicalDeviceMaintenance3Properties(vkStream, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
+            unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceVulkan11Features(vkStream, reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceVulkan11Properties(vkStream, reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceVulkan12Features(vkStream, reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceVulkan12Properties(vkStream, reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            unmarshal_VkImageFormatListCreateInfo(vkStream, reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            unmarshal_VkPhysicalDevice8BitStorageFeatures(vkStream, reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceDriverProperties(vkStream, reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(vkStream, reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(vkStream, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceFloatControlsProperties(vkStream, reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(vkStream, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            unmarshal_VkSubpassDescriptionDepthStencilResolve(vkStream, reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(vkStream, reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            unmarshal_VkImageStencilUsageCreateInfo(vkStream, reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            unmarshal_VkSamplerReductionModeCreateInfo(vkStream, reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(vkStream, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            unmarshal_VkFramebufferAttachmentsCreateInfo(vkStream, reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            unmarshal_VkRenderPassAttachmentBeginInfo(vkStream, reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            unmarshal_VkAttachmentReferenceStencilLayout(vkStream, reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            unmarshal_VkAttachmentDescriptionStencilLayout(vkStream, reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceHostQueryResetFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(vkStream, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            unmarshal_VkSemaphoreTypeCreateInfo(vkStream, reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            unmarshal_VkTimelineSemaphoreSubmitInfo(vkStream, reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(vkStream, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(vkStream, reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(vkStream, reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
             break;
         }
 #endif
@@ -11395,24 +19053,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            unmarshal_VkImageFormatListCreateInfoKHR(vkStream, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
+            unmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            unmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(vkStream, reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            unmarshal_VkQueryPoolPerformanceCreateInfoKHR(vkStream, reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            unmarshal_VkPerformanceQuerySubmitInfoKHR(vkStream, reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
+            unmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            unmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(vkStream, reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(vkStream, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            unmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            unmarshal_VkFragmentShadingRateAttachmentInfoKHR(vkStream, reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            unmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(vkStream, reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            unmarshal_VkSurfaceProtectedCapabilitiesKHR(vkStream, reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension_out));
             break;
         }
 #endif
@@ -11454,6 +19175,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -11461,6 +19199,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -11499,6 +19244,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            unmarshal_VkImageViewASTCDecodeModeEXT(vkStream, reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -11570,6 +19334,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -11599,15 +19375,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            unmarshal_VkSamplerReductionModeCreateInfoEXT(vkStream, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
+            unmarshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
+            unmarshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            unmarshal_VkWriteDescriptorSetInlineUniformBlockEXT(vkStream, reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(vkStream, reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -11664,6 +19450,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            unmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(vkStream, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            unmarshal_VkDrmFormatModifierPropertiesListEXT(vkStream, reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(vkStream, reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(vkStream, reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(vkStream, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -11671,30 +19491,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(vkStream, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
+            unmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
+            unmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
+            unmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(vkStream, reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
+            unmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(vkStream, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
+            unmarshal_VkWriteDescriptorSetAccelerationStructureNV(vkStream, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            unmarshal_VkPhysicalDeviceRayTracingPropertiesNV(vkStream, reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            unmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            unmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(vkStream, reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            unmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(vkStream, reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -11717,6 +19568,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            unmarshal_VkPipelineCompilerControlCreateInfoAMD(vkStream, reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -11724,6 +19582,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            unmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(vkStream, reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -11735,6 +19600,70 @@
             unmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            unmarshal_VkPresentFrameTokenGGP(vkStream, reinterpret_cast<VkPresentFrameTokenGGP*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            unmarshal_VkPipelineCreationFeedbackCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            unmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(vkStream, reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            unmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -11743,6 +19672,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            unmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(vkStream, reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            unmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(vkStream, reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            unmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(vkStream, reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            unmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(vkStream, reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -11760,6 +19722,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            unmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(vkStream, reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            unmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(vkStream, reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            unmarshal_VkMemoryPriorityAllocateInfoEXT(vkStream, reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            unmarshal_VkBufferDeviceAddressCreateInfoEXT(vkStream, reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            unmarshal_VkValidationFeaturesEXT(vkStream, reinterpret_cast<VkValidationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            unmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(vkStream, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            unmarshal_VkPipelineCoverageReductionStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            unmarshal_VkSurfaceFullScreenExclusiveInfoEXT(vkStream, reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            unmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(vkStream, reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            unmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(vkStream, reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            unmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(vkStream, reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(vkStream, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            unmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(vkStream, reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            unmarshal_VkRenderPassTransformBeginInfoQCOM(vkStream, reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            unmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(vkStream, reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(vkStream, reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(vkStream, reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDevicePrivateDataFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            unmarshal_VkDevicePrivateDataCreateInfoEXT(vkStream, reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            unmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(vkStream, reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            unmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(vkStream, reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            unmarshal_VkCopyCommandTransformInfoQCOM(vkStream, reinterpret_cast<VkCopyCommandTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(vkStream, reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            unmarshal_VkWriteDescriptorSetAccelerationStructureKHR(vkStream, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            unmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(vkStream, reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
         default:
         {
             // fatal; the switch is only taken if the extension struct is known
@@ -12563,16 +20907,6 @@
             return "OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR";
         }
 #endif
-#ifdef VK_KHR_mir_surface
-        case OP_vkCreateMirSurfaceKHR:
-        {
-            return "OP_vkCreateMirSurfaceKHR";
-        }
-        case OP_vkGetPhysicalDeviceMirPresentationSupportKHR:
-        {
-            return "OP_vkGetPhysicalDeviceMirPresentationSupportKHR";
-        }
-#endif
 #ifdef VK_KHR_android_surface
         case OP_vkCreateAndroidSurfaceKHR:
         {
@@ -12943,44 +21277,6 @@
             return "OP_vkCmdEndConditionalRenderingEXT";
         }
 #endif
-#ifdef VK_NVX_device_generated_commands
-        case OP_vkCmdProcessCommandsNVX:
-        {
-            return "OP_vkCmdProcessCommandsNVX";
-        }
-        case OP_vkCmdReserveSpaceForCommandsNVX:
-        {
-            return "OP_vkCmdReserveSpaceForCommandsNVX";
-        }
-        case OP_vkCreateIndirectCommandsLayoutNVX:
-        {
-            return "OP_vkCreateIndirectCommandsLayoutNVX";
-        }
-        case OP_vkDestroyIndirectCommandsLayoutNVX:
-        {
-            return "OP_vkDestroyIndirectCommandsLayoutNVX";
-        }
-        case OP_vkCreateObjectTableNVX:
-        {
-            return "OP_vkCreateObjectTableNVX";
-        }
-        case OP_vkDestroyObjectTableNVX:
-        {
-            return "OP_vkDestroyObjectTableNVX";
-        }
-        case OP_vkRegisterObjectsNVX:
-        {
-            return "OP_vkRegisterObjectsNVX";
-        }
-        case OP_vkUnregisterObjectsNVX:
-        {
-            return "OP_vkUnregisterObjectsNVX";
-        }
-        case OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX:
-        {
-            return "OP_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX";
-        }
-#endif
 #ifdef VK_NV_clip_space_w_scaling
         case OP_vkCmdSetViewportWScalingNV:
         {
@@ -13167,7 +21463,7 @@
             return "OP_vkGetQueueCheckpointDataNV";
         }
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_GOOGLE_gfxstream
         case OP_vkMapMemoryIntoAddressSpaceGOOGLE:
         {
             return "OP_vkMapMemoryIntoAddressSpaceGOOGLE";
@@ -13183,13 +21479,11 @@
             return "OP_vkRegisterBufferColorBufferGOOGLE";
         }
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_GOOGLE_gfxstream
         case OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE:
         {
             return "OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE";
         }
-#endif
-#ifdef VK_GOOGLE_async_command_buffers
         case OP_vkBeginCommandBufferAsyncGOOGLE:
         {
             return "OP_vkBeginCommandBufferAsyncGOOGLE";
@@ -13206,8 +21500,6 @@
         {
             return "OP_vkCommandBufferHostSyncGOOGLE";
         }
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
         case OP_vkCreateImageWithRequirementsGOOGLE:
         {
             return "OP_vkCreateImageWithRequirementsGOOGLE";
@@ -13216,20 +21508,14 @@
         {
             return "OP_vkCreateBufferWithRequirementsGOOGLE";
         }
-#endif
-#ifdef VK_GOOGLE_address_space_info
         case OP_vkGetMemoryHostAddressInfoGOOGLE:
         {
             return "OP_vkGetMemoryHostAddressInfoGOOGLE";
         }
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
         case OP_vkFreeMemorySyncGOOGLE:
         {
             return "OP_vkFreeMemorySyncGOOGLE";
         }
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
         case OP_vkQueueHostSyncGOOGLE:
         {
             return "OP_vkQueueHostSyncGOOGLE";
@@ -13246,8 +21532,6 @@
         {
             return "OP_vkQueueBindSparseAsyncGOOGLE";
         }
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
         case OP_vkGetLinearImageLayoutGOOGLE:
         {
             return "OP_vkGetLinearImageLayoutGOOGLE";
@@ -13279,12 +21563,846 @@
             return "OP_vkGetIOSurfaceMVK";
         }
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_GOOGLE_gfxstream
         case OP_vkQueueFlushCommandsGOOGLE:
         {
             return "OP_vkQueueFlushCommandsGOOGLE";
         }
 #endif
+#ifdef VK_EXT_full_screen_exclusive
+        case OP_vkAcquireFullScreenExclusiveModeEXT:
+        {
+            return "OP_vkAcquireFullScreenExclusiveModeEXT";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkBindAccelerationStructureMemoryNV:
+        {
+            return "OP_vkBindAccelerationStructureMemoryNV";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkInitializePerformanceApiINTEL:
+        {
+            return "OP_vkInitializePerformanceApiINTEL";
+        }
+#endif
+#ifdef VK_KHR_deferred_host_operations
+        case OP_vkGetDeferredOperationMaxConcurrencyKHR:
+        {
+            return "OP_vkGetDeferredOperationMaxConcurrencyKHR";
+        }
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+        case OP_vkGetCalibratedTimestampsEXT:
+        {
+            return "OP_vkGetCalibratedTimestampsEXT";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkCreateRayTracingPipelinesNV:
+        {
+            return "OP_vkCreateRayTracingPipelinesNV";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCmdCopyMemoryToAccelerationStructureKHR:
+        {
+            return "OP_vkCmdCopyMemoryToAccelerationStructureKHR";
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case OP_vkCmdSetFragmentShadingRateKHR:
+        {
+            return "OP_vkCmdSetFragmentShadingRateKHR";
+        }
+#endif
+#ifdef VK_NVX_image_view_handle
+        case OP_vkGetImageViewHandleNVX:
+        {
+            return "OP_vkGetImageViewHandleNVX";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetScissorWithCountEXT:
+        {
+            return "OP_vkCmdSetScissorWithCountEXT";
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case OP_vkGetRayTracingShaderGroupStackSizeKHR:
+        {
+            return "OP_vkGetRayTracingShaderGroupStackSizeKHR";
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case OP_vkGetDeviceGroupSurfacePresentModes2EXT:
+        {
+            return "OP_vkGetDeviceGroupSurfacePresentModes2EXT";
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case OP_vkCmdDrawMeshTasksNV:
+        {
+            return "OP_vkCmdDrawMeshTasksNV";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkCmdWriteAccelerationStructuresPropertiesNV:
+        {
+            return "OP_vkCmdWriteAccelerationStructuresPropertiesNV";
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case OP_vkDestroyPrivateDataSlotEXT:
+        {
+            return "OP_vkDestroyPrivateDataSlotEXT";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkCmdTraceRaysNV:
+        {
+            return "OP_vkCmdTraceRaysNV";
+        }
+#endif
+#ifdef VK_NVX_image_view_handle
+        case OP_vkGetImageViewAddressNVX:
+        {
+            return "OP_vkGetImageViewAddressNVX";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkCmdCopyAccelerationStructureNV:
+        {
+            return "OP_vkCmdCopyAccelerationStructureNV";
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case OP_vkCmdTraceRaysIndirectKHR:
+        {
+            return "OP_vkCmdTraceRaysIndirectKHR";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetFrontFaceEXT:
+        {
+            return "OP_vkCmdSetFrontFaceEXT";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkGetPerformanceParameterINTEL:
+        {
+            return "OP_vkGetPerformanceParameterINTEL";
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case OP_vkCmdTraceRaysKHR:
+        {
+            return "OP_vkCmdTraceRaysKHR";
+        }
+#endif
+#ifdef VK_NV_shading_rate_image
+        case OP_vkCmdSetViewportShadingRatePaletteNV:
+        {
+            return "OP_vkCmdSetViewportShadingRatePaletteNV";
+        }
+#endif
+#ifdef VK_KHR_deferred_host_operations
+        case OP_vkDestroyDeferredOperationKHR:
+        {
+            return "OP_vkDestroyDeferredOperationKHR";
+        }
+        case OP_vkDeferredOperationJoinKHR:
+        {
+            return "OP_vkDeferredOperationJoinKHR";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetDepthWriteEnableEXT:
+        {
+            return "OP_vkCmdSetDepthWriteEnableEXT";
+        }
+#endif
+#ifdef VK_KHR_buffer_device_address
+        case OP_vkGetBufferDeviceAddressKHR:
+        {
+            return "OP_vkGetBufferDeviceAddressKHR";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkGetAccelerationStructureBuildSizesKHR:
+        {
+            return "OP_vkGetAccelerationStructureBuildSizesKHR";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkGetAccelerationStructureMemoryRequirementsNV:
+        {
+            return "OP_vkGetAccelerationStructureMemoryRequirementsNV";
+        }
+#endif
+#ifdef VK_EXT_directfb_surface
+        case OP_vkCreateDirectFBSurfaceEXT:
+        {
+            return "OP_vkCreateDirectFBSurfaceEXT";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkCmdEndRenderPass2:
+        {
+            return "OP_vkCmdEndRenderPass2";
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR:
+        {
+            return "OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkGetBufferDeviceAddress:
+        {
+            return "OP_vkGetBufferDeviceAddress";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetDepthBoundsTestEnableEXT:
+        {
+            return "OP_vkCmdSetDepthBoundsTestEnableEXT";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkGetAccelerationStructureDeviceAddressKHR:
+        {
+            return "OP_vkGetAccelerationStructureDeviceAddressKHR";
+        }
+        case OP_vkCmdCopyAccelerationStructureToMemoryKHR:
+        {
+            return "OP_vkCmdCopyAccelerationStructureToMemoryKHR";
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case OP_vkCmdDrawMeshTasksIndirectCountNV:
+        {
+            return "OP_vkCmdDrawMeshTasksIndirectCountNV";
+        }
+#endif
+#ifdef VK_KHR_performance_query
+        case OP_vkReleaseProfilingLockKHR:
+        {
+            return "OP_vkReleaseProfilingLockKHR";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkDestroyAccelerationStructureKHR:
+        {
+            return "OP_vkDestroyAccelerationStructureKHR";
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case OP_vkGetBufferDeviceAddressEXT:
+        {
+            return "OP_vkGetBufferDeviceAddressEXT";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkWaitSemaphores:
+        {
+            return "OP_vkWaitSemaphores";
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case OP_vkSetPrivateDataEXT:
+        {
+            return "OP_vkSetPrivateDataEXT";
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case OP_vkCmdSetExclusiveScissorNV:
+        {
+            return "OP_vkCmdSetExclusiveScissorNV";
+        }
+#endif
+#ifdef VK_KHR_copy_commands2
+        case OP_vkCmdCopyImage2KHR:
+        {
+            return "OP_vkCmdCopyImage2KHR";
+        }
+#endif
+#ifdef VK_KHR_timeline_semaphore
+        case OP_vkGetSemaphoreCounterValueKHR:
+        {
+            return "OP_vkGetSemaphoreCounterValueKHR";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkGetRayTracingShaderGroupHandlesNV:
+        {
+            return "OP_vkGetRayTracingShaderGroupHandlesNV";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkGetBufferOpaqueCaptureAddress:
+        {
+            return "OP_vkGetBufferOpaqueCaptureAddress";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetDepthTestEnableEXT:
+        {
+            return "OP_vkCmdSetDepthTestEnableEXT";
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case OP_vkCmdExecuteGeneratedCommandsNV:
+        {
+            return "OP_vkCmdExecuteGeneratedCommandsNV";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkCmdBeginRenderPass2:
+        {
+            return "OP_vkCmdBeginRenderPass2";
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case OP_vkCreatePrivateDataSlotEXT:
+        {
+            return "OP_vkCreatePrivateDataSlotEXT";
+        }
+#endif
+#ifdef VK_NV_shading_rate_image
+        case OP_vkCmdSetCoarseSampleOrderNV:
+        {
+            return "OP_vkCmdSetCoarseSampleOrderNV";
+        }
+        case OP_vkCmdBindShadingRateImageNV:
+        {
+            return "OP_vkCmdBindShadingRateImageNV";
+        }
+#endif
+#ifdef VK_KHR_performance_query
+        case OP_vkAcquireProfilingLockKHR:
+        {
+            return "OP_vkAcquireProfilingLockKHR";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCopyAccelerationStructureKHR:
+        {
+            return "OP_vkCopyAccelerationStructureKHR";
+        }
+#endif
+#ifdef VK_GGP_stream_descriptor_surface
+        case OP_vkCreateStreamDescriptorSurfaceGGP:
+        {
+            return "OP_vkCreateStreamDescriptorSurfaceGGP";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkBuildAccelerationStructuresKHR:
+        {
+            return "OP_vkBuildAccelerationStructuresKHR";
+        }
+#endif
+#ifdef VK_EXT_host_query_reset
+        case OP_vkResetQueryPoolEXT:
+        {
+            return "OP_vkResetQueryPoolEXT";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdBindVertexBuffers2EXT:
+        {
+            return "OP_vkCmdBindVertexBuffers2EXT";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkCmdNextSubpass2:
+        {
+            return "OP_vkCmdNextSubpass2";
+        }
+        case OP_vkCmdDrawIndexedIndirectCount:
+        {
+            return "OP_vkCmdDrawIndexedIndirectCount";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkAcquirePerformanceConfigurationINTEL:
+        {
+            return "OP_vkAcquirePerformanceConfigurationINTEL";
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case OP_vkCreateRayTracingPipelinesKHR:
+        {
+            return "OP_vkCreateRayTracingPipelinesKHR";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetDepthCompareOpEXT:
+        {
+            return "OP_vkCmdSetDepthCompareOpEXT";
+        }
+#endif
+#ifdef VK_KHR_copy_commands2
+        case OP_vkCmdCopyBuffer2KHR:
+        {
+            return "OP_vkCmdCopyBuffer2KHR";
+        }
+        case OP_vkCmdCopyBufferToImage2KHR:
+        {
+            return "OP_vkCmdCopyBufferToImage2KHR";
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case OP_vkGetGeneratedCommandsMemoryRequirementsNV:
+        {
+            return "OP_vkGetGeneratedCommandsMemoryRequirementsNV";
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case OP_vkGetImageDrmFormatModifierPropertiesEXT:
+        {
+            return "OP_vkGetImageDrmFormatModifierPropertiesEXT";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkCmdSetPerformanceOverrideINTEL:
+        {
+            return "OP_vkCmdSetPerformanceOverrideINTEL";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkResetQueryPool:
+        {
+            return "OP_vkResetQueryPool";
+        }
+#endif
+#ifdef VK_KHR_copy_commands2
+        case OP_vkCmdCopyImageToBuffer2KHR:
+        {
+            return "OP_vkCmdCopyImageToBuffer2KHR";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkDestroyAccelerationStructureNV:
+        {
+            return "OP_vkDestroyAccelerationStructureNV";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkReleasePerformanceConfigurationINTEL:
+        {
+            return "OP_vkReleasePerformanceConfigurationINTEL";
+        }
+#endif
+#ifdef VK_KHR_copy_commands2
+        case OP_vkCmdResolveImage2KHR:
+        {
+            return "OP_vkCmdResolveImage2KHR";
+        }
+#endif
+#ifdef VK_EXT_metal_surface
+        case OP_vkCreateMetalSurfaceEXT:
+        {
+            return "OP_vkCreateMetalSurfaceEXT";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCopyAccelerationStructureToMemoryKHR:
+        {
+            return "OP_vkCopyAccelerationStructureToMemoryKHR";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetViewportWithCountEXT:
+        {
+            return "OP_vkCmdSetViewportWithCountEXT";
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case OP_vkReleaseFullScreenExclusiveModeEXT:
+        {
+            return "OP_vkReleaseFullScreenExclusiveModeEXT";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCmdBuildAccelerationStructuresIndirectKHR:
+        {
+            return "OP_vkCmdBuildAccelerationStructuresIndirectKHR";
+        }
+        case OP_vkCreateAccelerationStructureKHR:
+        {
+            return "OP_vkCreateAccelerationStructureKHR";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkCreateAccelerationStructureNV:
+        {
+            return "OP_vkCreateAccelerationStructureNV";
+        }
+#endif
+#ifdef VK_KHR_copy_commands2
+        case OP_vkCmdBlitImage2KHR:
+        {
+            return "OP_vkCmdBlitImage2KHR";
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case OP_vkCmdSetRayTracingPipelineStackSizeKHR:
+        {
+            return "OP_vkCmdSetRayTracingPipelineStackSizeKHR";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkGetDeviceMemoryOpaqueCaptureAddress:
+        {
+            return "OP_vkGetDeviceMemoryOpaqueCaptureAddress";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetPrimitiveTopologyEXT:
+        {
+            return "OP_vkCmdSetPrimitiveTopologyEXT";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkCmdSetPerformanceStreamMarkerINTEL:
+        {
+            return "OP_vkCmdSetPerformanceStreamMarkerINTEL";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCopyMemoryToAccelerationStructureKHR:
+        {
+            return "OP_vkCopyMemoryToAccelerationStructureKHR";
+        }
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+        case OP_vkCreateImagePipeSurfaceFUCHSIA:
+        {
+            return "OP_vkCreateImagePipeSurfaceFUCHSIA";
+        }
+#endif
+#ifdef VK_KHR_deferred_host_operations
+        case OP_vkGetDeferredOperationResultKHR:
+        {
+            return "OP_vkGetDeferredOperationResultKHR";
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case OP_vkCmdSetLineStippleEXT:
+        {
+            return "OP_vkCmdSetLineStippleEXT";
+        }
+#endif
+#ifdef VK_KHR_timeline_semaphore
+        case OP_vkWaitSemaphoresKHR:
+        {
+            return "OP_vkWaitSemaphoresKHR";
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case OP_vkCmdSetFragmentShadingRateEnumNV:
+        {
+            return "OP_vkCmdSetFragmentShadingRateEnumNV";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetCullModeEXT:
+        {
+            return "OP_vkCmdSetCullModeEXT";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkGetDeviceAccelerationStructureCompatibilityKHR:
+        {
+            return "OP_vkGetDeviceAccelerationStructureCompatibilityKHR";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkGetSemaphoreCounterValue:
+        {
+            return "OP_vkGetSemaphoreCounterValue";
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case OP_vkSetLocalDimmingAMD:
+        {
+            return "OP_vkSetLocalDimmingAMD";
+        }
+#endif
+#ifdef VK_EXT_transform_feedback
+        case OP_vkCmdBindTransformFeedbackBuffersEXT:
+        {
+            return "OP_vkCmdBindTransformFeedbackBuffersEXT";
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case OP_vkGetPhysicalDeviceSurfacePresentModes2EXT:
+        {
+            return "OP_vkGetPhysicalDeviceSurfacePresentModes2EXT";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkCmdBuildAccelerationStructureNV:
+        {
+            return "OP_vkCmdBuildAccelerationStructureNV";
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case OP_vkGetPipelineExecutablePropertiesKHR:
+        {
+            return "OP_vkGetPipelineExecutablePropertiesKHR";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkGetAccelerationStructureHandleNV:
+        {
+            return "OP_vkGetAccelerationStructureHandleNV";
+        }
+#endif
+#ifdef VK_KHR_timeline_semaphore
+        case OP_vkSignalSemaphoreKHR:
+        {
+            return "OP_vkSignalSemaphoreKHR";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkCmdSetPerformanceMarkerINTEL:
+        {
+            return "OP_vkCmdSetPerformanceMarkerINTEL";
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case OP_vkCmdBindPipelineShaderGroupNV:
+        {
+            return "OP_vkCmdBindPipelineShaderGroupNV";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkSignalSemaphore:
+        {
+            return "OP_vkSignalSemaphore";
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case OP_vkGetPipelineExecutableStatisticsKHR:
+        {
+            return "OP_vkGetPipelineExecutableStatisticsKHR";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCmdWriteAccelerationStructuresPropertiesKHR:
+        {
+            return "OP_vkCmdWriteAccelerationStructuresPropertiesKHR";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkGetRayTracingShaderGroupHandlesKHR:
+        {
+            return "OP_vkGetRayTracingShaderGroupHandlesKHR";
+        }
+#endif
+#ifdef VK_EXT_transform_feedback
+        case OP_vkCmdEndTransformFeedbackEXT:
+        {
+            return "OP_vkCmdEndTransformFeedbackEXT";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCmdBuildAccelerationStructuresKHR:
+        {
+            return "OP_vkCmdBuildAccelerationStructuresKHR";
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case OP_vkGetPhysicalDeviceFragmentShadingRatesKHR:
+        {
+            return "OP_vkGetPhysicalDeviceFragmentShadingRatesKHR";
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case OP_vkCmdDrawMeshTasksIndirectNV:
+        {
+            return "OP_vkCmdDrawMeshTasksIndirectNV";
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case OP_vkGetPipelineExecutableInternalRepresentationsKHR:
+        {
+            return "OP_vkGetPipelineExecutableInternalRepresentationsKHR";
+        }
+#endif
+#ifdef VK_KHR_deferred_host_operations
+        case OP_vkCreateDeferredOperationKHR:
+        {
+            return "OP_vkCreateDeferredOperationKHR";
+        }
+#endif
+#ifdef VK_EXT_transform_feedback
+        case OP_vkCmdBeginQueryIndexedEXT:
+        {
+            return "OP_vkCmdBeginQueryIndexedEXT";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetStencilOpEXT:
+        {
+            return "OP_vkCmdSetStencilOpEXT";
+        }
+#endif
+#ifdef VK_NV_ray_tracing
+        case OP_vkCompileDeferredNV:
+        {
+            return "OP_vkCompileDeferredNV";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkCmdCopyAccelerationStructureKHR:
+        {
+            return "OP_vkCmdCopyAccelerationStructureKHR";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkCreateRenderPass2:
+        {
+            return "OP_vkCreateRenderPass2";
+        }
+#endif
+#ifdef VK_EXT_transform_feedback
+        case OP_vkCmdEndQueryIndexedEXT:
+        {
+            return "OP_vkCmdEndQueryIndexedEXT";
+        }
+#endif
+#ifdef VK_KHR_performance_query
+        case OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR:
+        {
+            return "OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR";
+        }
+#endif
+#ifdef VK_EXT_tooling_info
+        case OP_vkGetPhysicalDeviceToolPropertiesEXT:
+        {
+            return "OP_vkGetPhysicalDeviceToolPropertiesEXT";
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case OP_vkCmdDrawIndirectCount:
+        {
+            return "OP_vkCmdDrawIndirectCount";
+        }
+#endif
+#ifdef VK_EXT_transform_feedback
+        case OP_vkCmdDrawIndirectByteCountEXT:
+        {
+            return "OP_vkCmdDrawIndirectByteCountEXT";
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case OP_vkCreateIndirectCommandsLayoutNV:
+        {
+            return "OP_vkCreateIndirectCommandsLayoutNV";
+        }
+#endif
+#ifdef VK_EXT_directfb_surface
+        case OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT:
+        {
+            return "OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT";
+        }
+#endif
+#ifdef VK_KHR_buffer_device_address
+        case OP_vkGetBufferOpaqueCaptureAddressKHR:
+        {
+            return "OP_vkGetBufferOpaqueCaptureAddressKHR";
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case OP_vkCmdSetStencilTestEnableEXT:
+        {
+            return "OP_vkCmdSetStencilTestEnableEXT";
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV:
+        {
+            return "OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV";
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case OP_vkWriteAccelerationStructuresPropertiesKHR:
+        {
+            return "OP_vkWriteAccelerationStructuresPropertiesKHR";
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case OP_vkGetPrivateDataEXT:
+        {
+            return "OP_vkGetPrivateDataEXT";
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV:
+        {
+            return "OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV";
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case OP_vkDestroyIndirectCommandsLayoutNV:
+        {
+            return "OP_vkDestroyIndirectCommandsLayoutNV";
+        }
+#endif
+#ifdef VK_EXT_transform_feedback
+        case OP_vkCmdBeginTransformFeedbackEXT:
+        {
+            return "OP_vkCmdBeginTransformFeedbackEXT";
+        }
+#endif
+#ifdef VK_KHR_buffer_device_address
+        case OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR:
+        {
+            return "OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkQueueSetPerformanceConfigurationINTEL:
+        {
+            return "OP_vkQueueSetPerformanceConfigurationINTEL";
+        }
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+        case OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT:
+        {
+            return "OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT";
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case OP_vkUninitializePerformanceApiINTEL:
+        {
+            return "OP_vkUninitializePerformanceApiINTEL";
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case OP_vkCmdPreprocessGeneratedCommandsNV:
+        {
+            return "OP_vkCmdPreprocessGeneratedCommandsNV";
+        }
+#endif
+#ifdef VK_EXT_headless_surface
+        case OP_vkCreateHeadlessSurfaceEXT:
+        {
+            return "OP_vkCreateHeadlessSurfaceEXT";
+        }
+#endif
+#ifdef VK_KHR_performance_query
+        case OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR:
+        {
+            return "OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR";
+        }
+#endif
         default:
         {
             return "OP_UNKNOWN_API_CALL";
diff --git a/system/vulkan_enc/goldfish_vk_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
index 4934121..c90d69e 100644
--- a/system/vulkan_enc/goldfish_vk_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_marshaling_guest.h
@@ -44,21 +44,117 @@
 namespace goldfish_vk {
 
 #ifdef VK_VERSION_1_0
-void marshal_VkApplicationInfo(
+void marshal_VkExtent2D(
     VulkanStreamGuest* vkStream,
-    const VkApplicationInfo* forMarshaling);
+    const VkExtent2D* forMarshaling);
 
-void unmarshal_VkApplicationInfo(
+void unmarshal_VkExtent2D(
     VulkanStreamGuest* vkStream,
-    VkApplicationInfo* forUnmarshaling);
+    VkExtent2D* forUnmarshaling);
 
-void marshal_VkInstanceCreateInfo(
+void marshal_VkExtent3D(
     VulkanStreamGuest* vkStream,
-    const VkInstanceCreateInfo* forMarshaling);
+    const VkExtent3D* forMarshaling);
 
-void unmarshal_VkInstanceCreateInfo(
+void unmarshal_VkExtent3D(
     VulkanStreamGuest* vkStream,
-    VkInstanceCreateInfo* forUnmarshaling);
+    VkExtent3D* forUnmarshaling);
+
+void marshal_VkOffset2D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset2D* forMarshaling);
+
+void unmarshal_VkOffset2D(
+    VulkanStreamGuest* vkStream,
+    VkOffset2D* forUnmarshaling);
+
+void marshal_VkOffset3D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset3D* forMarshaling);
+
+void unmarshal_VkOffset3D(
+    VulkanStreamGuest* vkStream,
+    VkOffset3D* forUnmarshaling);
+
+void marshal_VkRect2D(
+    VulkanStreamGuest* vkStream,
+    const VkRect2D* forMarshaling);
+
+void unmarshal_VkRect2D(
+    VulkanStreamGuest* vkStream,
+    VkRect2D* forUnmarshaling);
+
+void marshal_VkBaseInStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseInStructure* forMarshaling);
+
+void unmarshal_VkBaseInStructure(
+    VulkanStreamGuest* vkStream,
+    VkBaseInStructure* forUnmarshaling);
+
+void marshal_VkBaseOutStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseOutStructure* forMarshaling);
+
+void unmarshal_VkBaseOutStructure(
+    VulkanStreamGuest* vkStream,
+    VkBaseOutStructure* forUnmarshaling);
+
+void marshal_VkBufferMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkBufferMemoryBarrier* forMarshaling);
+
+void unmarshal_VkBufferMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    VkBufferMemoryBarrier* forUnmarshaling);
+
+void marshal_VkDispatchIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDispatchIndirectCommand* forMarshaling);
+
+void unmarshal_VkDispatchIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    VkDispatchIndirectCommand* forUnmarshaling);
+
+void marshal_VkDrawIndexedIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndexedIndirectCommand* forMarshaling);
+
+void unmarshal_VkDrawIndexedIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    VkDrawIndexedIndirectCommand* forUnmarshaling);
+
+void marshal_VkDrawIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndirectCommand* forMarshaling);
+
+void unmarshal_VkDrawIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    VkDrawIndirectCommand* forUnmarshaling);
+
+void marshal_VkImageSubresourceRange(
+    VulkanStreamGuest* vkStream,
+    const VkImageSubresourceRange* forMarshaling);
+
+void unmarshal_VkImageSubresourceRange(
+    VulkanStreamGuest* vkStream,
+    VkImageSubresourceRange* forUnmarshaling);
+
+void marshal_VkImageMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkImageMemoryBarrier* forMarshaling);
+
+void unmarshal_VkImageMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    VkImageMemoryBarrier* forUnmarshaling);
+
+void marshal_VkMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryBarrier* forMarshaling);
+
+void unmarshal_VkMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    VkMemoryBarrier* forUnmarshaling);
 
 void marshal_VkAllocationCallbacks(
     VulkanStreamGuest* vkStream,
@@ -68,18 +164,14 @@
     VulkanStreamGuest* vkStream,
     VkAllocationCallbacks* forUnmarshaling);
 
-#define OP_vkCreateInstance 20000
-#define OP_vkDestroyInstance 20001
-#define OP_vkEnumeratePhysicalDevices 20002
-void marshal_VkPhysicalDeviceFeatures(
+void marshal_VkApplicationInfo(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceFeatures* forMarshaling);
+    const VkApplicationInfo* forMarshaling);
 
-void unmarshal_VkPhysicalDeviceFeatures(
+void unmarshal_VkApplicationInfo(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceFeatures* forUnmarshaling);
+    VkApplicationInfo* forUnmarshaling);
 
-#define OP_vkGetPhysicalDeviceFeatures 20003
 void marshal_VkFormatProperties(
     VulkanStreamGuest* vkStream,
     const VkFormatProperties* forMarshaling);
@@ -88,15 +180,6 @@
     VulkanStreamGuest* vkStream,
     VkFormatProperties* forUnmarshaling);
 
-#define OP_vkGetPhysicalDeviceFormatProperties 20004
-void marshal_VkExtent3D(
-    VulkanStreamGuest* vkStream,
-    const VkExtent3D* forMarshaling);
-
-void unmarshal_VkExtent3D(
-    VulkanStreamGuest* vkStream,
-    VkExtent3D* forUnmarshaling);
-
 void marshal_VkImageFormatProperties(
     VulkanStreamGuest* vkStream,
     const VkImageFormatProperties* forMarshaling);
@@ -105,7 +188,38 @@
     VulkanStreamGuest* vkStream,
     VkImageFormatProperties* forUnmarshaling);
 
-#define OP_vkGetPhysicalDeviceImageFormatProperties 20005
+void marshal_VkInstanceCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkInstanceCreateInfo* forMarshaling);
+
+void unmarshal_VkInstanceCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkInstanceCreateInfo* forUnmarshaling);
+
+void marshal_VkMemoryHeap(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryHeap* forMarshaling);
+
+void unmarshal_VkMemoryHeap(
+    VulkanStreamGuest* vkStream,
+    VkMemoryHeap* forUnmarshaling);
+
+void marshal_VkMemoryType(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryType* forMarshaling);
+
+void unmarshal_VkMemoryType(
+    VulkanStreamGuest* vkStream,
+    VkMemoryType* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFeatures* forUnmarshaling);
+
 void marshal_VkPhysicalDeviceLimits(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceLimits* forMarshaling);
@@ -114,6 +228,14 @@
     VulkanStreamGuest* vkStream,
     VkPhysicalDeviceLimits* forUnmarshaling);
 
+void marshal_VkPhysicalDeviceMemoryProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryProperties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMemoryProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMemoryProperties* forUnmarshaling);
+
 void marshal_VkPhysicalDeviceSparseProperties(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseProperties* forMarshaling);
@@ -130,7 +252,6 @@
     VulkanStreamGuest* vkStream,
     VkPhysicalDeviceProperties* forUnmarshaling);
 
-#define OP_vkGetPhysicalDeviceProperties 20006
 void marshal_VkQueueFamilyProperties(
     VulkanStreamGuest* vkStream,
     const VkQueueFamilyProperties* forMarshaling);
@@ -139,31 +260,14 @@
     VulkanStreamGuest* vkStream,
     VkQueueFamilyProperties* forUnmarshaling);
 
+#define OP_vkCreateInstance 20000
+#define OP_vkDestroyInstance 20001
+#define OP_vkEnumeratePhysicalDevices 20002
+#define OP_vkGetPhysicalDeviceFeatures 20003
+#define OP_vkGetPhysicalDeviceFormatProperties 20004
+#define OP_vkGetPhysicalDeviceImageFormatProperties 20005
+#define OP_vkGetPhysicalDeviceProperties 20006
 #define OP_vkGetPhysicalDeviceQueueFamilyProperties 20007
-void marshal_VkMemoryType(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryType* forMarshaling);
-
-void unmarshal_VkMemoryType(
-    VulkanStreamGuest* vkStream,
-    VkMemoryType* forUnmarshaling);
-
-void marshal_VkMemoryHeap(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryHeap* forMarshaling);
-
-void unmarshal_VkMemoryHeap(
-    VulkanStreamGuest* vkStream,
-    VkMemoryHeap* forUnmarshaling);
-
-void marshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceMemoryProperties* forMarshaling);
-
-void unmarshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceMemoryProperties* forUnmarshaling);
-
 #define OP_vkGetPhysicalDeviceMemoryProperties 20008
 #define OP_vkGetInstanceProcAddr 20009
 #define OP_vkGetDeviceProcAddr 20010
@@ -205,7 +309,6 @@
 
 #define OP_vkEnumerateInstanceLayerProperties 20015
 #define OP_vkEnumerateDeviceLayerProperties 20016
-#define OP_vkGetDeviceQueue 20017
 void marshal_VkSubmitInfo(
     VulkanStreamGuest* vkStream,
     const VkSubmitInfo* forMarshaling);
@@ -214,9 +317,18 @@
     VulkanStreamGuest* vkStream,
     VkSubmitInfo* forUnmarshaling);
 
+#define OP_vkGetDeviceQueue 20017
 #define OP_vkQueueSubmit 20018
 #define OP_vkQueueWaitIdle 20019
 #define OP_vkDeviceWaitIdle 20020
+void marshal_VkMappedMemoryRange(
+    VulkanStreamGuest* vkStream,
+    const VkMappedMemoryRange* forMarshaling);
+
+void unmarshal_VkMappedMemoryRange(
+    VulkanStreamGuest* vkStream,
+    VkMappedMemoryRange* forUnmarshaling);
+
 void marshal_VkMemoryAllocateInfo(
     VulkanStreamGuest* vkStream,
     const VkMemoryAllocateInfo* forMarshaling);
@@ -229,19 +341,9 @@
 #define OP_vkFreeMemory 20022
 #define OP_vkMapMemory 20023
 #define OP_vkUnmapMemory 20024
-void marshal_VkMappedMemoryRange(
-    VulkanStreamGuest* vkStream,
-    const VkMappedMemoryRange* forMarshaling);
-
-void unmarshal_VkMappedMemoryRange(
-    VulkanStreamGuest* vkStream,
-    VkMappedMemoryRange* forUnmarshaling);
-
 #define OP_vkFlushMappedMemoryRanges 20025
 #define OP_vkInvalidateMappedMemoryRanges 20026
 #define OP_vkGetDeviceMemoryCommitment 20027
-#define OP_vkBindBufferMemory 20028
-#define OP_vkBindImageMemory 20029
 void marshal_VkMemoryRequirements(
     VulkanStreamGuest* vkStream,
     const VkMemoryRequirements* forMarshaling);
@@ -250,26 +352,10 @@
     VulkanStreamGuest* vkStream,
     VkMemoryRequirements* forUnmarshaling);
 
+#define OP_vkBindBufferMemory 20028
+#define OP_vkBindImageMemory 20029
 #define OP_vkGetBufferMemoryRequirements 20030
 #define OP_vkGetImageMemoryRequirements 20031
-void marshal_VkSparseImageFormatProperties(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageFormatProperties* forMarshaling);
-
-void unmarshal_VkSparseImageFormatProperties(
-    VulkanStreamGuest* vkStream,
-    VkSparseImageFormatProperties* forUnmarshaling);
-
-void marshal_VkSparseImageMemoryRequirements(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageMemoryRequirements* forMarshaling);
-
-void unmarshal_VkSparseImageMemoryRequirements(
-    VulkanStreamGuest* vkStream,
-    VkSparseImageMemoryRequirements* forUnmarshaling);
-
-#define OP_vkGetImageSparseMemoryRequirements 20032
-#define OP_vkGetPhysicalDeviceSparseImageFormatProperties 20033
 void marshal_VkSparseMemoryBind(
     VulkanStreamGuest* vkStream,
     const VkSparseMemoryBind* forMarshaling);
@@ -302,14 +388,6 @@
     VulkanStreamGuest* vkStream,
     VkImageSubresource* forUnmarshaling);
 
-void marshal_VkOffset3D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset3D* forMarshaling);
-
-void unmarshal_VkOffset3D(
-    VulkanStreamGuest* vkStream,
-    VkOffset3D* forUnmarshaling);
-
 void marshal_VkSparseImageMemoryBind(
     VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryBind* forMarshaling);
@@ -334,6 +412,24 @@
     VulkanStreamGuest* vkStream,
     VkBindSparseInfo* forUnmarshaling);
 
+void marshal_VkSparseImageFormatProperties(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageFormatProperties* forMarshaling);
+
+void unmarshal_VkSparseImageFormatProperties(
+    VulkanStreamGuest* vkStream,
+    VkSparseImageFormatProperties* forUnmarshaling);
+
+void marshal_VkSparseImageMemoryRequirements(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageMemoryRequirements* forMarshaling);
+
+void unmarshal_VkSparseImageMemoryRequirements(
+    VulkanStreamGuest* vkStream,
+    VkSparseImageMemoryRequirements* forUnmarshaling);
+
+#define OP_vkGetImageSparseMemoryRequirements 20032
+#define OP_vkGetPhysicalDeviceSparseImageFormatProperties 20033
 #define OP_vkQueueBindSparse 20034
 void marshal_VkFenceCreateInfo(
     VulkanStreamGuest* vkStream,
@@ -410,8 +506,6 @@
     VulkanStreamGuest* vkStream,
     VkImageCreateInfo* forUnmarshaling);
 
-#define OP_vkCreateImage 20054
-#define OP_vkDestroyImage 20055
 void marshal_VkSubresourceLayout(
     VulkanStreamGuest* vkStream,
     const VkSubresourceLayout* forMarshaling);
@@ -420,6 +514,8 @@
     VulkanStreamGuest* vkStream,
     VkSubresourceLayout* forUnmarshaling);
 
+#define OP_vkCreateImage 20054
+#define OP_vkDestroyImage 20055
 #define OP_vkGetImageSubresourceLayout 20056
 void marshal_VkComponentMapping(
     VulkanStreamGuest* vkStream,
@@ -429,14 +525,6 @@
     VulkanStreamGuest* vkStream,
     VkComponentMapping* forUnmarshaling);
 
-void marshal_VkImageSubresourceRange(
-    VulkanStreamGuest* vkStream,
-    const VkImageSubresourceRange* forMarshaling);
-
-void unmarshal_VkImageSubresourceRange(
-    VulkanStreamGuest* vkStream,
-    VkImageSubresourceRange* forUnmarshaling);
-
 void marshal_VkImageViewCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkImageViewCreateInfo* forMarshaling);
@@ -493,6 +581,14 @@
     VulkanStreamGuest* vkStream,
     VkPipelineShaderStageCreateInfo* forUnmarshaling);
 
+void marshal_VkComputePipelineCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkComputePipelineCreateInfo* forMarshaling);
+
+void unmarshal_VkComputePipelineCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkComputePipelineCreateInfo* forUnmarshaling);
+
 void marshal_VkVertexInputBindingDescription(
     VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDescription* forMarshaling);
@@ -541,30 +637,6 @@
     VulkanStreamGuest* vkStream,
     VkViewport* forUnmarshaling);
 
-void marshal_VkOffset2D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset2D* forMarshaling);
-
-void unmarshal_VkOffset2D(
-    VulkanStreamGuest* vkStream,
-    VkOffset2D* forUnmarshaling);
-
-void marshal_VkExtent2D(
-    VulkanStreamGuest* vkStream,
-    const VkExtent2D* forMarshaling);
-
-void unmarshal_VkExtent2D(
-    VulkanStreamGuest* vkStream,
-    VkExtent2D* forUnmarshaling);
-
-void marshal_VkRect2D(
-    VulkanStreamGuest* vkStream,
-    const VkRect2D* forMarshaling);
-
-void unmarshal_VkRect2D(
-    VulkanStreamGuest* vkStream,
-    VkRect2D* forUnmarshaling);
-
 void marshal_VkPipelineViewportStateCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkPipelineViewportStateCreateInfo* forMarshaling);
@@ -638,14 +710,6 @@
     VkGraphicsPipelineCreateInfo* forUnmarshaling);
 
 #define OP_vkCreateGraphicsPipelines 20065
-void marshal_VkComputePipelineCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkComputePipelineCreateInfo* forMarshaling);
-
-void unmarshal_VkComputePipelineCreateInfo(
-    VulkanStreamGuest* vkStream,
-    VkComputePipelineCreateInfo* forUnmarshaling);
-
 #define OP_vkCreateComputePipelines 20066
 #define OP_vkDestroyPipeline 20067
 void marshal_VkPushConstantRange(
@@ -676,24 +740,30 @@
 
 #define OP_vkCreateSampler 20070
 #define OP_vkDestroySampler 20071
-void marshal_VkDescriptorSetLayoutBinding(
+void marshal_VkCopyDescriptorSet(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBinding* forMarshaling);
+    const VkCopyDescriptorSet* forMarshaling);
 
-void unmarshal_VkDescriptorSetLayoutBinding(
+void unmarshal_VkCopyDescriptorSet(
     VulkanStreamGuest* vkStream,
-    VkDescriptorSetLayoutBinding* forUnmarshaling);
+    VkCopyDescriptorSet* forUnmarshaling);
 
-void marshal_VkDescriptorSetLayoutCreateInfo(
+void marshal_VkDescriptorBufferInfo(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutCreateInfo* forMarshaling);
+    const VkDescriptorBufferInfo* forMarshaling);
 
-void unmarshal_VkDescriptorSetLayoutCreateInfo(
+void unmarshal_VkDescriptorBufferInfo(
     VulkanStreamGuest* vkStream,
-    VkDescriptorSetLayoutCreateInfo* forUnmarshaling);
+    VkDescriptorBufferInfo* forUnmarshaling);
 
-#define OP_vkCreateDescriptorSetLayout 20072
-#define OP_vkDestroyDescriptorSetLayout 20073
+void marshal_VkDescriptorImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorImageInfo* forMarshaling);
+
+void unmarshal_VkDescriptorImageInfo(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorImageInfo* forUnmarshaling);
+
 void marshal_VkDescriptorPoolSize(
     VulkanStreamGuest* vkStream,
     const VkDescriptorPoolSize* forMarshaling);
@@ -710,9 +780,6 @@
     VulkanStreamGuest* vkStream,
     VkDescriptorPoolCreateInfo* forUnmarshaling);
 
-#define OP_vkCreateDescriptorPool 20074
-#define OP_vkDestroyDescriptorPool 20075
-#define OP_vkResetDescriptorPool 20076
 void marshal_VkDescriptorSetAllocateInfo(
     VulkanStreamGuest* vkStream,
     const VkDescriptorSetAllocateInfo* forMarshaling);
@@ -721,23 +788,21 @@
     VulkanStreamGuest* vkStream,
     VkDescriptorSetAllocateInfo* forUnmarshaling);
 
-#define OP_vkAllocateDescriptorSets 20077
-#define OP_vkFreeDescriptorSets 20078
-void marshal_VkDescriptorImageInfo(
+void marshal_VkDescriptorSetLayoutBinding(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorImageInfo* forMarshaling);
+    const VkDescriptorSetLayoutBinding* forMarshaling);
 
-void unmarshal_VkDescriptorImageInfo(
+void unmarshal_VkDescriptorSetLayoutBinding(
     VulkanStreamGuest* vkStream,
-    VkDescriptorImageInfo* forUnmarshaling);
+    VkDescriptorSetLayoutBinding* forUnmarshaling);
 
-void marshal_VkDescriptorBufferInfo(
+void marshal_VkDescriptorSetLayoutCreateInfo(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorBufferInfo* forMarshaling);
+    const VkDescriptorSetLayoutCreateInfo* forMarshaling);
 
-void unmarshal_VkDescriptorBufferInfo(
+void unmarshal_VkDescriptorSetLayoutCreateInfo(
     VulkanStreamGuest* vkStream,
-    VkDescriptorBufferInfo* forUnmarshaling);
+    VkDescriptorSetLayoutCreateInfo* forUnmarshaling);
 
 void marshal_VkWriteDescriptorSet(
     VulkanStreamGuest* vkStream,
@@ -747,25 +812,14 @@
     VulkanStreamGuest* vkStream,
     VkWriteDescriptorSet* forUnmarshaling);
 
-void marshal_VkCopyDescriptorSet(
-    VulkanStreamGuest* vkStream,
-    const VkCopyDescriptorSet* forMarshaling);
-
-void unmarshal_VkCopyDescriptorSet(
-    VulkanStreamGuest* vkStream,
-    VkCopyDescriptorSet* forUnmarshaling);
-
+#define OP_vkCreateDescriptorSetLayout 20072
+#define OP_vkDestroyDescriptorSetLayout 20073
+#define OP_vkCreateDescriptorPool 20074
+#define OP_vkDestroyDescriptorPool 20075
+#define OP_vkResetDescriptorPool 20076
+#define OP_vkAllocateDescriptorSets 20077
+#define OP_vkFreeDescriptorSets 20078
 #define OP_vkUpdateDescriptorSets 20079
-void marshal_VkFramebufferCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkFramebufferCreateInfo* forMarshaling);
-
-void unmarshal_VkFramebufferCreateInfo(
-    VulkanStreamGuest* vkStream,
-    VkFramebufferCreateInfo* forUnmarshaling);
-
-#define OP_vkCreateFramebuffer 20080
-#define OP_vkDestroyFramebuffer 20081
 void marshal_VkAttachmentDescription(
     VulkanStreamGuest* vkStream,
     const VkAttachmentDescription* forMarshaling);
@@ -782,6 +836,14 @@
     VulkanStreamGuest* vkStream,
     VkAttachmentReference* forUnmarshaling);
 
+void marshal_VkFramebufferCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferCreateInfo* forMarshaling);
+
+void unmarshal_VkFramebufferCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferCreateInfo* forUnmarshaling);
+
 void marshal_VkSubpassDescription(
     VulkanStreamGuest* vkStream,
     const VkSubpassDescription* forMarshaling);
@@ -806,6 +868,8 @@
     VulkanStreamGuest* vkStream,
     VkRenderPassCreateInfo* forUnmarshaling);
 
+#define OP_vkCreateFramebuffer 20080
+#define OP_vkDestroyFramebuffer 20081
 #define OP_vkCreateRenderPass 20082
 #define OP_vkDestroyRenderPass 20083
 #define OP_vkGetRenderAreaGranularity 20084
@@ -828,8 +892,6 @@
     VulkanStreamGuest* vkStream,
     VkCommandBufferAllocateInfo* forUnmarshaling);
 
-#define OP_vkAllocateCommandBuffers 20088
-#define OP_vkFreeCommandBuffers 20089
 void marshal_VkCommandBufferInheritanceInfo(
     VulkanStreamGuest* vkStream,
     const VkCommandBufferInheritanceInfo* forMarshaling);
@@ -846,28 +908,11 @@
     VulkanStreamGuest* vkStream,
     VkCommandBufferBeginInfo* forUnmarshaling);
 
+#define OP_vkAllocateCommandBuffers 20088
+#define OP_vkFreeCommandBuffers 20089
 #define OP_vkBeginCommandBuffer 20090
 #define OP_vkEndCommandBuffer 20091
 #define OP_vkResetCommandBuffer 20092
-#define OP_vkCmdBindPipeline 20093
-#define OP_vkCmdSetViewport 20094
-#define OP_vkCmdSetScissor 20095
-#define OP_vkCmdSetLineWidth 20096
-#define OP_vkCmdSetDepthBias 20097
-#define OP_vkCmdSetBlendConstants 20098
-#define OP_vkCmdSetDepthBounds 20099
-#define OP_vkCmdSetStencilCompareMask 20100
-#define OP_vkCmdSetStencilWriteMask 20101
-#define OP_vkCmdSetStencilReference 20102
-#define OP_vkCmdBindDescriptorSets 20103
-#define OP_vkCmdBindIndexBuffer 20104
-#define OP_vkCmdBindVertexBuffers 20105
-#define OP_vkCmdDraw 20106
-#define OP_vkCmdDrawIndexed 20107
-#define OP_vkCmdDrawIndirect 20108
-#define OP_vkCmdDrawIndexedIndirect 20109
-#define OP_vkCmdDispatch 20110
-#define OP_vkCmdDispatchIndirect 20111
 void marshal_VkBufferCopy(
     VulkanStreamGuest* vkStream,
     const VkBufferCopy* forMarshaling);
@@ -876,7 +921,6 @@
     VulkanStreamGuest* vkStream,
     VkBufferCopy* forUnmarshaling);
 
-#define OP_vkCmdCopyBuffer 20112
 void marshal_VkImageSubresourceLayers(
     VulkanStreamGuest* vkStream,
     const VkImageSubresourceLayers* forMarshaling);
@@ -885,24 +929,6 @@
     VulkanStreamGuest* vkStream,
     VkImageSubresourceLayers* forUnmarshaling);
 
-void marshal_VkImageCopy(
-    VulkanStreamGuest* vkStream,
-    const VkImageCopy* forMarshaling);
-
-void unmarshal_VkImageCopy(
-    VulkanStreamGuest* vkStream,
-    VkImageCopy* forUnmarshaling);
-
-#define OP_vkCmdCopyImage 20113
-void marshal_VkImageBlit(
-    VulkanStreamGuest* vkStream,
-    const VkImageBlit* forMarshaling);
-
-void unmarshal_VkImageBlit(
-    VulkanStreamGuest* vkStream,
-    VkImageBlit* forUnmarshaling);
-
-#define OP_vkCmdBlitImage 20114
 void marshal_VkBufferImageCopy(
     VulkanStreamGuest* vkStream,
     const VkBufferImageCopy* forMarshaling);
@@ -911,10 +937,6 @@
     VulkanStreamGuest* vkStream,
     VkBufferImageCopy* forUnmarshaling);
 
-#define OP_vkCmdCopyBufferToImage 20115
-#define OP_vkCmdCopyImageToBuffer 20116
-#define OP_vkCmdUpdateBuffer 20117
-#define OP_vkCmdFillBuffer 20118
 void marshal_VkClearColorValue(
     VulkanStreamGuest* vkStream,
     const VkClearColorValue* forMarshaling);
@@ -923,7 +945,6 @@
     VulkanStreamGuest* vkStream,
     VkClearColorValue* forUnmarshaling);
 
-#define OP_vkCmdClearColorImage 20119
 void marshal_VkClearDepthStencilValue(
     VulkanStreamGuest* vkStream,
     const VkClearDepthStencilValue* forMarshaling);
@@ -932,7 +953,6 @@
     VulkanStreamGuest* vkStream,
     VkClearDepthStencilValue* forUnmarshaling);
 
-#define OP_vkCmdClearDepthStencilImage 20120
 void marshal_VkClearValue(
     VulkanStreamGuest* vkStream,
     const VkClearValue* forMarshaling);
@@ -957,7 +977,22 @@
     VulkanStreamGuest* vkStream,
     VkClearRect* forUnmarshaling);
 
-#define OP_vkCmdClearAttachments 20121
+void marshal_VkImageBlit(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit* forMarshaling);
+
+void unmarshal_VkImageBlit(
+    VulkanStreamGuest* vkStream,
+    VkImageBlit* forUnmarshaling);
+
+void marshal_VkImageCopy(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy* forMarshaling);
+
+void unmarshal_VkImageCopy(
+    VulkanStreamGuest* vkStream,
+    VkImageCopy* forUnmarshaling);
+
 void marshal_VkImageResolve(
     VulkanStreamGuest* vkStream,
     const VkImageResolve* forMarshaling);
@@ -966,41 +1001,6 @@
     VulkanStreamGuest* vkStream,
     VkImageResolve* forUnmarshaling);
 
-#define OP_vkCmdResolveImage 20122
-#define OP_vkCmdSetEvent 20123
-#define OP_vkCmdResetEvent 20124
-void marshal_VkMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryBarrier* forMarshaling);
-
-void unmarshal_VkMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    VkMemoryBarrier* forUnmarshaling);
-
-void marshal_VkBufferMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkBufferMemoryBarrier* forMarshaling);
-
-void unmarshal_VkBufferMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    VkBufferMemoryBarrier* forUnmarshaling);
-
-void marshal_VkImageMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkImageMemoryBarrier* forMarshaling);
-
-void unmarshal_VkImageMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    VkImageMemoryBarrier* forUnmarshaling);
-
-#define OP_vkCmdWaitEvents 20125
-#define OP_vkCmdPipelineBarrier 20126
-#define OP_vkCmdBeginQuery 20127
-#define OP_vkCmdEndQuery 20128
-#define OP_vkCmdResetQueryPool 20129
-#define OP_vkCmdWriteTimestamp 20130
-#define OP_vkCmdCopyQueryPoolResults 20131
-#define OP_vkCmdPushConstants 20132
 void marshal_VkRenderPassBeginInfo(
     VulkanStreamGuest* vkStream,
     const VkRenderPassBeginInfo* forMarshaling);
@@ -1009,50 +1009,50 @@
     VulkanStreamGuest* vkStream,
     VkRenderPassBeginInfo* forUnmarshaling);
 
+#define OP_vkCmdBindPipeline 20093
+#define OP_vkCmdSetViewport 20094
+#define OP_vkCmdSetScissor 20095
+#define OP_vkCmdSetLineWidth 20096
+#define OP_vkCmdSetDepthBias 20097
+#define OP_vkCmdSetBlendConstants 20098
+#define OP_vkCmdSetDepthBounds 20099
+#define OP_vkCmdSetStencilCompareMask 20100
+#define OP_vkCmdSetStencilWriteMask 20101
+#define OP_vkCmdSetStencilReference 20102
+#define OP_vkCmdBindDescriptorSets 20103
+#define OP_vkCmdBindIndexBuffer 20104
+#define OP_vkCmdBindVertexBuffers 20105
+#define OP_vkCmdDraw 20106
+#define OP_vkCmdDrawIndexed 20107
+#define OP_vkCmdDrawIndirect 20108
+#define OP_vkCmdDrawIndexedIndirect 20109
+#define OP_vkCmdDispatch 20110
+#define OP_vkCmdDispatchIndirect 20111
+#define OP_vkCmdCopyBuffer 20112
+#define OP_vkCmdCopyImage 20113
+#define OP_vkCmdBlitImage 20114
+#define OP_vkCmdCopyBufferToImage 20115
+#define OP_vkCmdCopyImageToBuffer 20116
+#define OP_vkCmdUpdateBuffer 20117
+#define OP_vkCmdFillBuffer 20118
+#define OP_vkCmdClearColorImage 20119
+#define OP_vkCmdClearDepthStencilImage 20120
+#define OP_vkCmdClearAttachments 20121
+#define OP_vkCmdResolveImage 20122
+#define OP_vkCmdSetEvent 20123
+#define OP_vkCmdResetEvent 20124
+#define OP_vkCmdWaitEvents 20125
+#define OP_vkCmdPipelineBarrier 20126
+#define OP_vkCmdBeginQuery 20127
+#define OP_vkCmdEndQuery 20128
+#define OP_vkCmdResetQueryPool 20129
+#define OP_vkCmdWriteTimestamp 20130
+#define OP_vkCmdCopyQueryPoolResults 20131
+#define OP_vkCmdPushConstants 20132
 #define OP_vkCmdBeginRenderPass 20133
 #define OP_vkCmdNextSubpass 20134
 #define OP_vkCmdEndRenderPass 20135
 #define OP_vkCmdExecuteCommands 20136
-void marshal_VkDispatchIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDispatchIndirectCommand* forMarshaling);
-
-void unmarshal_VkDispatchIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    VkDispatchIndirectCommand* forUnmarshaling);
-
-void marshal_VkDrawIndexedIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndexedIndirectCommand* forMarshaling);
-
-void unmarshal_VkDrawIndexedIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    VkDrawIndexedIndirectCommand* forUnmarshaling);
-
-void marshal_VkDrawIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndirectCommand* forMarshaling);
-
-void unmarshal_VkDrawIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    VkDrawIndirectCommand* forUnmarshaling);
-
-void marshal_VkBaseOutStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseOutStructure* forMarshaling);
-
-void unmarshal_VkBaseOutStructure(
-    VulkanStreamGuest* vkStream,
-    VkBaseOutStructure* forUnmarshaling);
-
-void marshal_VkBaseInStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseInStructure* forMarshaling);
-
-void unmarshal_VkBaseInStructure(
-    VulkanStreamGuest* vkStream,
-    VkBaseInStructure* forUnmarshaling);
-
 #endif
 #ifdef VK_VERSION_1_1
 #define OP_vkEnumerateInstanceVersion 20137
@@ -1369,13 +1369,17 @@
     VulkanStreamGuest* vkStream,
     VkPhysicalDeviceMultiviewProperties* forUnmarshaling);
 
-void marshal_VkPhysicalDeviceVariablePointerFeatures(
+void marshal_VkPhysicalDeviceVariablePointersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceVariablePointerFeatures* forMarshaling);
+    const VkPhysicalDeviceVariablePointersFeatures* forMarshaling);
 
-void unmarshal_VkPhysicalDeviceVariablePointerFeatures(
+void unmarshal_VkPhysicalDeviceVariablePointersFeatures(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceVariablePointerFeatures* forUnmarshaling);
+    VkPhysicalDeviceVariablePointersFeatures* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceVariablePointersFeatures, marshal_VkPhysicalDeviceVariablePointerFeatures);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceVariablePointersFeatures, unmarshal_VkPhysicalDeviceVariablePointerFeatures);
 
 void marshal_VkPhysicalDeviceProtectedMemoryFeatures(
     VulkanStreamGuest* vkStream,
@@ -1619,18 +1623,443 @@
     VkDescriptorSetLayoutSupport* forUnmarshaling);
 
 #define OP_vkGetDescriptorSetLayoutSupport 20164
-void marshal_VkPhysicalDeviceShaderDrawParameterFeatures(
+void marshal_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling);
+    const VkPhysicalDeviceShaderDrawParametersFeatures* forMarshaling);
 
-void unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
+void unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceShaderDrawParameterFeatures* forUnmarshaling);
+    VkPhysicalDeviceShaderDrawParametersFeatures* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceShaderDrawParametersFeatures, marshal_VkPhysicalDeviceShaderDrawParameterFeatures);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceShaderDrawParametersFeatures, unmarshal_VkPhysicalDeviceShaderDrawParameterFeatures);
 
 #endif
+#ifdef VK_VERSION_1_2
+void marshal_VkPhysicalDeviceVulkan11Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Features* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVulkan11Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan11Features* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceVulkan11Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Properties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVulkan11Properties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan11Properties* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceVulkan12Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Features* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVulkan12Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan12Features* forUnmarshaling);
+
+void marshal_VkConformanceVersion(
+    VulkanStreamGuest* vkStream,
+    const VkConformanceVersion* forMarshaling);
+
+void unmarshal_VkConformanceVersion(
+    VulkanStreamGuest* vkStream,
+    VkConformanceVersion* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceVulkan12Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Properties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVulkan12Properties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkan12Properties* forUnmarshaling);
+
+void marshal_VkImageFormatListCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageFormatListCreateInfo* forMarshaling);
+
+void unmarshal_VkImageFormatListCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkImageFormatListCreateInfo* forUnmarshaling);
+
+#define OP_vkCmdDrawIndirectCount 282774587
+#define OP_vkCmdDrawIndexedIndirectCount 245204359
+void marshal_VkAttachmentDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescription2* forMarshaling);
+
+void unmarshal_VkAttachmentDescription2(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentDescription2* forUnmarshaling);
+
+void marshal_VkAttachmentReference2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReference2* forMarshaling);
+
+void unmarshal_VkAttachmentReference2(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentReference2* forUnmarshaling);
+
+void marshal_VkSubpassDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescription2* forMarshaling);
+
+void unmarshal_VkSubpassDescription2(
+    VulkanStreamGuest* vkStream,
+    VkSubpassDescription2* forUnmarshaling);
+
+void marshal_VkSubpassDependency2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDependency2* forMarshaling);
+
+void unmarshal_VkSubpassDependency2(
+    VulkanStreamGuest* vkStream,
+    VkSubpassDependency2* forUnmarshaling);
+
+void marshal_VkRenderPassCreateInfo2(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassCreateInfo2* forMarshaling);
+
+void unmarshal_VkRenderPassCreateInfo2(
+    VulkanStreamGuest* vkStream,
+    VkRenderPassCreateInfo2* forUnmarshaling);
+
+void marshal_VkSubpassBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassBeginInfo* forMarshaling);
+
+void unmarshal_VkSubpassBeginInfo(
+    VulkanStreamGuest* vkStream,
+    VkSubpassBeginInfo* forUnmarshaling);
+
+void marshal_VkSubpassEndInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassEndInfo* forMarshaling);
+
+void unmarshal_VkSubpassEndInfo(
+    VulkanStreamGuest* vkStream,
+    VkSubpassEndInfo* forUnmarshaling);
+
+#define OP_vkCreateRenderPass2 279590827
+#define OP_vkCmdBeginRenderPass2 235222847
+#define OP_vkCmdNextSubpass2 244873750
+#define OP_vkCmdEndRenderPass2 221297834
+void marshal_VkPhysicalDevice8BitStorageFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice8BitStorageFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDevice8BitStorageFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevice8BitStorageFeatures* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceDriverProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDriverProperties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDriverProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDriverProperties* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicInt64Features* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderAtomicInt64Features* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderFloat16Int8Features* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceFloatControlsProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFloatControlsProperties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFloatControlsProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFloatControlsProperties* forUnmarshaling);
+
+void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* forMarshaling);
+
+void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDescriptorIndexingFeatures* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingProperties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDescriptorIndexingProperties* forUnmarshaling);
+
+void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* forMarshaling);
+
+void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* forUnmarshaling);
+
+void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* forMarshaling);
+
+void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* forUnmarshaling);
+
+void marshal_VkSubpassDescriptionDepthStencilResolve(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescriptionDepthStencilResolve* forMarshaling);
+
+void unmarshal_VkSubpassDescriptionDepthStencilResolve(
+    VulkanStreamGuest* vkStream,
+    VkSubpassDescriptionDepthStencilResolve* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthStencilResolveProperties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDepthStencilResolveProperties* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* forUnmarshaling);
+
+void marshal_VkImageStencilUsageCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageStencilUsageCreateInfo* forMarshaling);
+
+void unmarshal_VkImageStencilUsageCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkImageStencilUsageCreateInfo* forUnmarshaling);
+
+void marshal_VkSamplerReductionModeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerReductionModeCreateInfo* forMarshaling);
+
+void unmarshal_VkSamplerReductionModeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkSamplerReductionModeCreateInfo* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImagelessFramebufferFeatures* forUnmarshaling);
+
+void marshal_VkFramebufferAttachmentImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentImageInfo* forMarshaling);
+
+void unmarshal_VkFramebufferAttachmentImageInfo(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferAttachmentImageInfo* forUnmarshaling);
+
+void marshal_VkFramebufferAttachmentsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentsCreateInfo* forMarshaling);
+
+void unmarshal_VkFramebufferAttachmentsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferAttachmentsCreateInfo* forUnmarshaling);
+
+void marshal_VkRenderPassAttachmentBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassAttachmentBeginInfo* forMarshaling);
+
+void unmarshal_VkRenderPassAttachmentBeginInfo(
+    VulkanStreamGuest* vkStream,
+    VkRenderPassAttachmentBeginInfo* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forUnmarshaling);
+
+void marshal_VkAttachmentReferenceStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReferenceStencilLayout* forMarshaling);
+
+void unmarshal_VkAttachmentReferenceStencilLayout(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentReferenceStencilLayout* forUnmarshaling);
+
+void marshal_VkAttachmentDescriptionStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescriptionStencilLayout* forMarshaling);
+
+void unmarshal_VkAttachmentDescriptionStencilLayout(
+    VulkanStreamGuest* vkStream,
+    VkAttachmentDescriptionStencilLayout* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceHostQueryResetFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceHostQueryResetFeatures* forUnmarshaling);
+
+#define OP_vkResetQueryPool 252097672
+void marshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTimelineSemaphoreProperties* forUnmarshaling);
+
+void marshal_VkSemaphoreTypeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreTypeCreateInfo* forMarshaling);
+
+void unmarshal_VkSemaphoreTypeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkSemaphoreTypeCreateInfo* forUnmarshaling);
+
+void marshal_VkTimelineSemaphoreSubmitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkTimelineSemaphoreSubmitInfo* forMarshaling);
+
+void unmarshal_VkTimelineSemaphoreSubmitInfo(
+    VulkanStreamGuest* vkStream,
+    VkTimelineSemaphoreSubmitInfo* forUnmarshaling);
+
+void marshal_VkSemaphoreWaitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreWaitInfo* forMarshaling);
+
+void unmarshal_VkSemaphoreWaitInfo(
+    VulkanStreamGuest* vkStream,
+    VkSemaphoreWaitInfo* forUnmarshaling);
+
+void marshal_VkSemaphoreSignalInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreSignalInfo* forMarshaling);
+
+void unmarshal_VkSemaphoreSignalInfo(
+    VulkanStreamGuest* vkStream,
+    VkSemaphoreSignalInfo* forUnmarshaling);
+
+#define OP_vkGetSemaphoreCounterValue 267066974
+#define OP_vkWaitSemaphores 224777382
+#define OP_vkSignalSemaphore 271024127
+void marshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* forUnmarshaling);
+
+void marshal_VkBufferDeviceAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressInfo* forMarshaling);
+
+void unmarshal_VkBufferDeviceAddressInfo(
+    VulkanStreamGuest* vkStream,
+    VkBufferDeviceAddressInfo* forUnmarshaling);
+
+void marshal_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferOpaqueCaptureAddressCreateInfo* forMarshaling);
+
+void unmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanStreamGuest* vkStream,
+    VkBufferOpaqueCaptureAddressCreateInfo* forUnmarshaling);
+
+void marshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* forMarshaling);
+
+void unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* forUnmarshaling);
+
+void marshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* forMarshaling);
+
+void unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanStreamGuest* vkStream,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* forUnmarshaling);
+
+#define OP_vkGetBufferDeviceAddress 222632266
+#define OP_vkGetBufferOpaqueCaptureAddress 230188231
+#define OP_vkGetDeviceMemoryOpaqueCaptureAddress 260620079
+#endif
 #ifdef VK_KHR_surface
-#define OP_vkDestroySurfaceKHR 20165
-#define OP_vkGetPhysicalDeviceSurfaceSupportKHR 20166
 void marshal_VkSurfaceCapabilitiesKHR(
     VulkanStreamGuest* vkStream,
     const VkSurfaceCapabilitiesKHR* forMarshaling);
@@ -1639,7 +2068,6 @@
     VulkanStreamGuest* vkStream,
     VkSurfaceCapabilitiesKHR* forUnmarshaling);
 
-#define OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR 20167
 void marshal_VkSurfaceFormatKHR(
     VulkanStreamGuest* vkStream,
     const VkSurfaceFormatKHR* forMarshaling);
@@ -1648,6 +2076,9 @@
     VulkanStreamGuest* vkStream,
     VkSurfaceFormatKHR* forUnmarshaling);
 
+#define OP_vkDestroySurfaceKHR 20165
+#define OP_vkGetPhysicalDeviceSurfaceSupportKHR 20166
+#define OP_vkGetPhysicalDeviceSurfaceCapabilitiesKHR 20167
 #define OP_vkGetPhysicalDeviceSurfaceFormatsKHR 20168
 #define OP_vkGetPhysicalDeviceSurfacePresentModesKHR 20169
 #endif
@@ -1660,10 +2091,6 @@
     VulkanStreamGuest* vkStream,
     VkSwapchainCreateInfoKHR* forUnmarshaling);
 
-#define OP_vkCreateSwapchainKHR 20170
-#define OP_vkDestroySwapchainKHR 20171
-#define OP_vkGetSwapchainImagesKHR 20172
-#define OP_vkAcquireNextImageKHR 20173
 void marshal_VkPresentInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkPresentInfoKHR* forMarshaling);
@@ -1672,6 +2099,10 @@
     VulkanStreamGuest* vkStream,
     VkPresentInfoKHR* forUnmarshaling);
 
+#define OP_vkCreateSwapchainKHR 20170
+#define OP_vkDestroySwapchainKHR 20171
+#define OP_vkGetSwapchainImagesKHR 20172
+#define OP_vkAcquireNextImageKHR 20173
 #define OP_vkQueuePresentKHR 20174
 void marshal_VkImageSwapchainCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -1727,14 +2158,6 @@
 #define OP_vkAcquireNextImage2KHR 20178
 #endif
 #ifdef VK_KHR_display
-void marshal_VkDisplayPropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayPropertiesKHR* forMarshaling);
-
-void unmarshal_VkDisplayPropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    VkDisplayPropertiesKHR* forUnmarshaling);
-
 void marshal_VkDisplayModeParametersKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeParametersKHR* forMarshaling);
@@ -1743,14 +2166,6 @@
     VulkanStreamGuest* vkStream,
     VkDisplayModeParametersKHR* forUnmarshaling);
 
-void marshal_VkDisplayModePropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayModePropertiesKHR* forMarshaling);
-
-void unmarshal_VkDisplayModePropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    VkDisplayModePropertiesKHR* forUnmarshaling);
-
 void marshal_VkDisplayModeCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeCreateInfoKHR* forMarshaling);
@@ -1759,6 +2174,14 @@
     VulkanStreamGuest* vkStream,
     VkDisplayModeCreateInfoKHR* forUnmarshaling);
 
+void marshal_VkDisplayModePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayModePropertiesKHR* forMarshaling);
+
+void unmarshal_VkDisplayModePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkDisplayModePropertiesKHR* forUnmarshaling);
+
 void marshal_VkDisplayPlaneCapabilitiesKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilitiesKHR* forMarshaling);
@@ -1775,6 +2198,14 @@
     VulkanStreamGuest* vkStream,
     VkDisplayPlanePropertiesKHR* forUnmarshaling);
 
+void marshal_VkDisplayPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayPropertiesKHR* forMarshaling);
+
+void unmarshal_VkDisplayPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkDisplayPropertiesKHR* forUnmarshaling);
+
 void marshal_VkDisplaySurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplaySurfaceCreateInfoKHR* forMarshaling);
@@ -1838,18 +2269,6 @@
 #define OP_vkCreateWaylandSurfaceKHR 20191
 #define OP_vkGetPhysicalDeviceWaylandPresentationSupportKHR 20192
 #endif
-#ifdef VK_KHR_mir_surface
-void marshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkMirSurfaceCreateInfoKHR* forMarshaling);
-
-void unmarshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkMirSurfaceCreateInfoKHR* forUnmarshaling);
-
-#define OP_vkCreateMirSurfaceKHR 20193
-#define OP_vkGetPhysicalDeviceMirPresentationSupportKHR 20194
-#endif
 #ifdef VK_KHR_android_surface
 void marshal_VkAndroidSurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -1876,8 +2295,56 @@
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
 #ifdef VK_KHR_multiview
+DEFINE_ALIAS_FUNCTION(marshal_VkRenderPassMultiviewCreateInfo, marshal_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkRenderPassMultiviewCreateInfo, unmarshal_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceMultiviewFeatures, marshal_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceMultiviewFeatures, unmarshal_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceMultiviewProperties, marshal_VkPhysicalDeviceMultiviewPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceMultiviewProperties, unmarshal_VkPhysicalDeviceMultiviewPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceFeatures2, marshal_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceFeatures2, unmarshal_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceProperties2, marshal_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceProperties2, unmarshal_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkFormatProperties2, marshal_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkFormatProperties2, unmarshal_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkImageFormatProperties2, marshal_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkImageFormatProperties2, unmarshal_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceImageFormatInfo2, marshal_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceImageFormatInfo2, unmarshal_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkQueueFamilyProperties2, marshal_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkQueueFamilyProperties2, unmarshal_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceMemoryProperties2, marshal_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceMemoryProperties2, unmarshal_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSparseImageFormatProperties2, marshal_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSparseImageFormatProperties2, unmarshal_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceSparseImageFormatInfo2, marshal_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceSparseImageFormatInfo2, unmarshal_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
 #define OP_vkGetPhysicalDeviceFeatures2KHR 20198
 #define OP_vkGetPhysicalDeviceProperties2KHR 20199
 #define OP_vkGetPhysicalDeviceFormatProperties2KHR 20200
@@ -1887,9 +2354,37 @@
 #define OP_vkGetPhysicalDeviceSparseImageFormatProperties2KHR 20204
 #endif
 #ifdef VK_KHR_device_group
+DEFINE_ALIAS_FUNCTION(marshal_VkMemoryAllocateFlagsInfo, marshal_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkMemoryAllocateFlagsInfo, unmarshal_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDeviceGroupRenderPassBeginInfo, marshal_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDeviceGroupRenderPassBeginInfo, unmarshal_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDeviceGroupCommandBufferBeginInfo, marshal_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDeviceGroupCommandBufferBeginInfo, unmarshal_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDeviceGroupSubmitInfo, marshal_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDeviceGroupSubmitInfo, unmarshal_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDeviceGroupBindSparseInfo, marshal_VkDeviceGroupBindSparseInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDeviceGroupBindSparseInfo, unmarshal_VkDeviceGroupBindSparseInfoKHR);
+
 #define OP_vkGetDeviceGroupPeerMemoryFeaturesKHR 20205
 #define OP_vkCmdSetDeviceMaskKHR 20206
 #define OP_vkCmdDispatchBaseKHR 20207
+DEFINE_ALIAS_FUNCTION(marshal_VkBindBufferMemoryDeviceGroupInfo, marshal_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBindBufferMemoryDeviceGroupInfo, unmarshal_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkBindImageMemoryDeviceGroupInfo, marshal_VkBindImageMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBindImageMemoryDeviceGroupInfo, unmarshal_VkBindImageMemoryDeviceGroupInfoKHR);
+
 #endif
 #ifdef VK_KHR_shader_draw_parameters
 #endif
@@ -1897,12 +2392,56 @@
 #define OP_vkTrimCommandPoolKHR 20208
 #endif
 #ifdef VK_KHR_device_group_creation
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceGroupProperties, marshal_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceGroupProperties, unmarshal_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDeviceGroupDeviceCreateInfo, marshal_VkDeviceGroupDeviceCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDeviceGroupDeviceCreateInfo, unmarshal_VkDeviceGroupDeviceCreateInfoKHR);
+
 #define OP_vkEnumeratePhysicalDeviceGroupsKHR 20209
 #endif
 #ifdef VK_KHR_external_memory_capabilities
+DEFINE_ALIAS_FUNCTION(marshal_VkExternalMemoryProperties, marshal_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExternalMemoryProperties, unmarshal_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceExternalImageFormatInfo, marshal_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceExternalImageFormatInfo, unmarshal_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkExternalImageFormatProperties, marshal_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExternalImageFormatProperties, unmarshal_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceExternalBufferInfo, marshal_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceExternalBufferInfo, unmarshal_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkExternalBufferProperties, marshal_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExternalBufferProperties, unmarshal_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceIDProperties, marshal_VkPhysicalDeviceIDPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceIDProperties, unmarshal_VkPhysicalDeviceIDPropertiesKHR);
+
 #define OP_vkGetPhysicalDeviceExternalBufferPropertiesKHR 20210
 #endif
 #ifdef VK_KHR_external_memory
+DEFINE_ALIAS_FUNCTION(marshal_VkExternalMemoryImageCreateInfo, marshal_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExternalMemoryImageCreateInfo, unmarshal_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkExternalMemoryBufferCreateInfo, marshal_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExternalMemoryBufferCreateInfo, unmarshal_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkExportMemoryAllocateInfo, marshal_VkExportMemoryAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExportMemoryAllocateInfo, unmarshal_VkExportMemoryAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_win32
 void marshal_VkImportMemoryWin32HandleInfoKHR(
@@ -1979,9 +2518,21 @@
 
 #endif
 #ifdef VK_KHR_external_semaphore_capabilities
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceExternalSemaphoreInfo, marshal_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceExternalSemaphoreInfo, unmarshal_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkExternalSemaphoreProperties, marshal_VkExternalSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExternalSemaphoreProperties, unmarshal_VkExternalSemaphorePropertiesKHR);
+
 #define OP_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR 20215
 #endif
 #ifdef VK_KHR_external_semaphore
+DEFINE_ALIAS_FUNCTION(marshal_VkExportSemaphoreCreateInfo, marshal_VkExportSemaphoreCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExportSemaphoreCreateInfo, unmarshal_VkExportSemaphoreCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void marshal_VkImportSemaphoreWin32HandleInfoKHR(
@@ -2051,7 +2602,21 @@
 #define OP_vkCmdPushDescriptorSetKHR 20220
 #define OP_vkCmdPushDescriptorSetWithTemplateKHR 20221
 #endif
+#ifdef VK_KHR_shader_float16_int8
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceShaderFloat16Int8Features, marshal_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceShaderFloat16Int8Features, unmarshal_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceShaderFloat16Int8Features, marshal_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceShaderFloat16Int8Features, unmarshal_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+#endif
 #ifdef VK_KHR_16bit_storage
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDevice16BitStorageFeatures, marshal_VkPhysicalDevice16BitStorageFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDevice16BitStorageFeatures, unmarshal_VkPhysicalDevice16BitStorageFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_incremental_present
 void marshal_VkRectLayerKHR(
@@ -2080,69 +2645,67 @@
 
 #endif
 #ifdef VK_KHR_descriptor_update_template
+DEFINE_ALIAS_FUNCTION(marshal_VkDescriptorUpdateTemplateEntry, marshal_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDescriptorUpdateTemplateEntry, unmarshal_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDescriptorUpdateTemplateCreateInfo, marshal_VkDescriptorUpdateTemplateCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDescriptorUpdateTemplateCreateInfo, unmarshal_VkDescriptorUpdateTemplateCreateInfoKHR);
+
 #define OP_vkCreateDescriptorUpdateTemplateKHR 20222
 #define OP_vkDestroyDescriptorUpdateTemplateKHR 20223
 #define OP_vkUpdateDescriptorSetWithTemplateKHR 20224
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceImagelessFramebufferFeatures, marshal_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceImagelessFramebufferFeatures, unmarshal_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkFramebufferAttachmentsCreateInfo, marshal_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkFramebufferAttachmentsCreateInfo, unmarshal_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkFramebufferAttachmentImageInfo, marshal_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkFramebufferAttachmentImageInfo, unmarshal_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkRenderPassAttachmentBeginInfo, marshal_VkRenderPassAttachmentBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkRenderPassAttachmentBeginInfo, unmarshal_VkRenderPassAttachmentBeginInfoKHR);
+
+#endif
 #ifdef VK_KHR_create_renderpass2
-void marshal_VkAttachmentDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentDescription2KHR* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkRenderPassCreateInfo2, marshal_VkRenderPassCreateInfo2KHR);
 
-void unmarshal_VkAttachmentDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    VkAttachmentDescription2KHR* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkRenderPassCreateInfo2, unmarshal_VkRenderPassCreateInfo2KHR);
 
-void marshal_VkAttachmentReference2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentReference2KHR* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkAttachmentDescription2, marshal_VkAttachmentDescription2KHR);
 
-void unmarshal_VkAttachmentReference2KHR(
-    VulkanStreamGuest* vkStream,
-    VkAttachmentReference2KHR* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkAttachmentDescription2, unmarshal_VkAttachmentDescription2KHR);
 
-void marshal_VkSubpassDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDescription2KHR* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkAttachmentReference2, marshal_VkAttachmentReference2KHR);
 
-void unmarshal_VkSubpassDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassDescription2KHR* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkAttachmentReference2, unmarshal_VkAttachmentReference2KHR);
 
-void marshal_VkSubpassDependency2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDependency2KHR* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkSubpassDescription2, marshal_VkSubpassDescription2KHR);
 
-void unmarshal_VkSubpassDependency2KHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassDependency2KHR* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSubpassDescription2, unmarshal_VkSubpassDescription2KHR);
 
-void marshal_VkRenderPassCreateInfo2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkRenderPassCreateInfo2KHR* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkSubpassDependency2, marshal_VkSubpassDependency2KHR);
 
-void unmarshal_VkRenderPassCreateInfo2KHR(
-    VulkanStreamGuest* vkStream,
-    VkRenderPassCreateInfo2KHR* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSubpassDependency2, unmarshal_VkSubpassDependency2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSubpassBeginInfo, marshal_VkSubpassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSubpassBeginInfo, unmarshal_VkSubpassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSubpassEndInfo, marshal_VkSubpassEndInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSubpassEndInfo, unmarshal_VkSubpassEndInfoKHR);
 
 #define OP_vkCreateRenderPass2KHR 20225
-void marshal_VkSubpassBeginInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassBeginInfoKHR* forMarshaling);
-
-void unmarshal_VkSubpassBeginInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassBeginInfoKHR* forUnmarshaling);
-
 #define OP_vkCmdBeginRenderPass2KHR 20226
-void marshal_VkSubpassEndInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassEndInfoKHR* forMarshaling);
-
-void unmarshal_VkSubpassEndInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkSubpassEndInfoKHR* forUnmarshaling);
-
 #define OP_vkCmdNextSubpass2KHR 20227
 #define OP_vkCmdEndRenderPass2KHR 20228
 #endif
@@ -2158,9 +2721,21 @@
 #define OP_vkGetSwapchainStatusKHR 20229
 #endif
 #ifdef VK_KHR_external_fence_capabilities
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceExternalFenceInfo, marshal_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceExternalFenceInfo, unmarshal_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkExternalFenceProperties, marshal_VkExternalFencePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExternalFenceProperties, unmarshal_VkExternalFencePropertiesKHR);
+
 #define OP_vkGetPhysicalDeviceExternalFencePropertiesKHR 20230
 #endif
 #ifdef VK_KHR_external_fence
+DEFINE_ALIAS_FUNCTION(marshal_VkExportFenceCreateInfo, marshal_VkExportFenceCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkExportFenceCreateInfo, unmarshal_VkExportFenceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_fence_win32
 void marshal_VkImportFenceWin32HandleInfoKHR(
@@ -2210,7 +2785,97 @@
 #define OP_vkImportFenceFdKHR 20233
 #define OP_vkGetFenceFdKHR 20234
 #endif
+#ifdef VK_KHR_performance_query
+void marshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* forUnmarshaling);
+
+void marshal_VkPerformanceCounterKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterKHR* forMarshaling);
+
+void unmarshal_VkPerformanceCounterKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceCounterKHR* forUnmarshaling);
+
+void marshal_VkPerformanceCounterDescriptionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterDescriptionKHR* forMarshaling);
+
+void unmarshal_VkPerformanceCounterDescriptionKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceCounterDescriptionKHR* forUnmarshaling);
+
+void marshal_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkQueryPoolPerformanceCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkPerformanceCounterResultKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterResultKHR* forMarshaling);
+
+void unmarshal_VkPerformanceCounterResultKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceCounterResultKHR* forUnmarshaling);
+
+void marshal_VkAcquireProfilingLockInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAcquireProfilingLockInfoKHR* forMarshaling);
+
+void unmarshal_VkAcquireProfilingLockInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAcquireProfilingLockInfoKHR* forUnmarshaling);
+
+void marshal_VkPerformanceQuerySubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceQuerySubmitInfoKHR* forMarshaling);
+
+void unmarshal_VkPerformanceQuerySubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceQuerySubmitInfoKHR* forUnmarshaling);
+
+#define OP_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR 299033148
+#define OP_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR 282029987
+#define OP_vkAcquireProfilingLockKHR 238952296
+#define OP_vkReleaseProfilingLockKHR 223904011
+#endif
 #ifdef VK_KHR_maintenance2
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDevicePointClippingProperties, marshal_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDevicePointClippingProperties, unmarshal_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkRenderPassInputAttachmentAspectCreateInfo, marshal_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkRenderPassInputAttachmentAspectCreateInfo, unmarshal_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkInputAttachmentAspectReference, marshal_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkInputAttachmentAspectReference, unmarshal_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkImageViewUsageCreateInfo, marshal_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkImageViewUsageCreateInfo, unmarshal_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPipelineTessellationDomainOriginStateCreateInfo, marshal_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPipelineTessellationDomainOriginStateCreateInfo, unmarshal_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void marshal_VkPhysicalDeviceSurfaceInfo2KHR(
@@ -2241,6 +2906,14 @@
 #define OP_vkGetPhysicalDeviceSurfaceFormats2KHR 20236
 #endif
 #ifdef VK_KHR_variable_pointers
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceVariablePointersFeatures, marshal_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceVariablePointersFeatures, unmarshal_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceVariablePointersFeatures, marshal_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceVariablePointersFeatures, unmarshal_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_get_display_properties2
 void marshal_VkDisplayProperties2KHR(
@@ -2289,61 +2962,501 @@
 #define OP_vkGetDisplayPlaneCapabilities2KHR 20240
 #endif
 #ifdef VK_KHR_dedicated_allocation
+DEFINE_ALIAS_FUNCTION(marshal_VkMemoryDedicatedRequirements, marshal_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkMemoryDedicatedRequirements, unmarshal_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkMemoryDedicatedAllocateInfo, marshal_VkMemoryDedicatedAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkMemoryDedicatedAllocateInfo, unmarshal_VkMemoryDedicatedAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_storage_buffer_storage_class
 #endif
 #ifdef VK_KHR_relaxed_block_layout
 #endif
 #ifdef VK_KHR_get_memory_requirements2
+DEFINE_ALIAS_FUNCTION(marshal_VkBufferMemoryRequirementsInfo2, marshal_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBufferMemoryRequirementsInfo2, unmarshal_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkImageMemoryRequirementsInfo2, marshal_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkImageMemoryRequirementsInfo2, unmarshal_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkImageSparseMemoryRequirementsInfo2, marshal_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkImageSparseMemoryRequirementsInfo2, unmarshal_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkMemoryRequirements2, marshal_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkMemoryRequirements2, unmarshal_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSparseImageMemoryRequirements2, marshal_VkSparseImageMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSparseImageMemoryRequirements2, unmarshal_VkSparseImageMemoryRequirements2KHR);
+
 #define OP_vkGetImageMemoryRequirements2KHR 20241
 #define OP_vkGetBufferMemoryRequirements2KHR 20242
 #define OP_vkGetImageSparseMemoryRequirements2KHR 20243
 #endif
 #ifdef VK_KHR_image_format_list
-void marshal_VkImageFormatListCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkImageFormatListCreateInfoKHR* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkImageFormatListCreateInfo, marshal_VkImageFormatListCreateInfoKHR);
 
-void unmarshal_VkImageFormatListCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    VkImageFormatListCreateInfoKHR* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkImageFormatListCreateInfo, unmarshal_VkImageFormatListCreateInfoKHR);
 
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
+DEFINE_ALIAS_FUNCTION(marshal_VkSamplerYcbcrConversionCreateInfo, marshal_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSamplerYcbcrConversionCreateInfo, unmarshal_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSamplerYcbcrConversionInfo, marshal_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSamplerYcbcrConversionInfo, unmarshal_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkBindImagePlaneMemoryInfo, marshal_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBindImagePlaneMemoryInfo, unmarshal_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkImagePlaneMemoryRequirementsInfo, marshal_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkImagePlaneMemoryRequirementsInfo, unmarshal_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures, marshal_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures, unmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSamplerYcbcrConversionImageFormatProperties, marshal_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSamplerYcbcrConversionImageFormatProperties, unmarshal_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
 #define OP_vkCreateSamplerYcbcrConversionKHR 20244
 #define OP_vkDestroySamplerYcbcrConversionKHR 20245
 #endif
 #ifdef VK_KHR_bind_memory2
+DEFINE_ALIAS_FUNCTION(marshal_VkBindBufferMemoryInfo, marshal_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBindBufferMemoryInfo, unmarshal_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkBindImageMemoryInfo, marshal_VkBindImageMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBindImageMemoryInfo, unmarshal_VkBindImageMemoryInfoKHR);
+
 #define OP_vkBindBufferMemory2KHR 20246
 #define OP_vkBindImageMemory2KHR 20247
 #endif
+#ifdef VK_KHR_portability_subset
+void marshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* forUnmarshaling);
+
+#endif
 #ifdef VK_KHR_maintenance3
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceMaintenance3Properties, marshal_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceMaintenance3Properties, unmarshal_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDescriptorSetLayoutSupport, marshal_VkDescriptorSetLayoutSupportKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDescriptorSetLayoutSupport, unmarshal_VkDescriptorSetLayoutSupportKHR);
+
 #define OP_vkGetDescriptorSetLayoutSupportKHR 20248
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #define OP_vkCmdDrawIndirectCountKHR 20249
 #define OP_vkCmdDrawIndexedIndirectCountKHR 20250
 #endif
-#ifdef VK_KHR_8bit_storage
-void marshal_VkPhysicalDevice8BitStorageFeaturesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling);
+#ifdef VK_KHR_shader_subgroup_extended_types
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, marshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
 
-void unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDevice8BitStorageFeaturesKHR* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, unmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void marshal_VkPhysicalDeviceShaderFloat16Int8Features(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling);
+#ifdef VK_KHR_8bit_storage
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDevice8BitStorageFeatures, marshal_VkPhysicalDevice8BitStorageFeaturesKHR);
 
-void unmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceShaderFloat16Int8Features* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDevice8BitStorageFeatures, unmarshal_VkPhysicalDevice8BitStorageFeaturesKHR);
 
 #endif
+#ifdef VK_KHR_shader_atomic_int64
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceShaderAtomicInt64Features, marshal_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceShaderAtomicInt64Features, unmarshal_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_clock
+void marshal_VkPhysicalDeviceShaderClockFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderClockFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderClockFeaturesKHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_driver_properties
+DEFINE_ALIAS_FUNCTION(marshal_VkConformanceVersion, marshal_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkConformanceVersion, unmarshal_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceDriverProperties, marshal_VkPhysicalDeviceDriverPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceDriverProperties, unmarshal_VkPhysicalDeviceDriverPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_shader_float_controls
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceFloatControlsProperties, marshal_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceFloatControlsProperties, unmarshal_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+DEFINE_ALIAS_FUNCTION(marshal_VkSubpassDescriptionDepthStencilResolve, marshal_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSubpassDescriptionDepthStencilResolve, unmarshal_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceDepthStencilResolveProperties, marshal_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceDepthStencilResolveProperties, unmarshal_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceTimelineSemaphoreFeatures, marshal_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures, unmarshal_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceTimelineSemaphoreProperties, marshal_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceTimelineSemaphoreProperties, unmarshal_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSemaphoreTypeCreateInfo, marshal_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSemaphoreTypeCreateInfo, unmarshal_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkTimelineSemaphoreSubmitInfo, marshal_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkTimelineSemaphoreSubmitInfo, unmarshal_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSemaphoreWaitInfo, marshal_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSemaphoreWaitInfo, unmarshal_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkSemaphoreSignalInfo, marshal_VkSemaphoreSignalInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSemaphoreSignalInfo, unmarshal_VkSemaphoreSignalInfoKHR);
+
+#define OP_vkGetSemaphoreCounterValueKHR 229059496
+#define OP_vkWaitSemaphoresKHR 263904357
+#define OP_vkSignalSemaphoreKHR 269919108
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceVulkanMemoryModelFeatures, marshal_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures, unmarshal_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void marshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void marshal_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkFragmentShadingRateAttachmentInfoKHR* forMarshaling);
+
+void unmarshal_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkFragmentShadingRateAttachmentInfoKHR* forUnmarshaling);
+
+void marshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateKHR* forUnmarshaling);
+
+#define OP_vkGetPhysicalDeviceFragmentShadingRatesKHR 272978593
+#define OP_vkCmdSetFragmentShadingRateKHR 204060280
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void marshal_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceProtectedCapabilitiesKHR* forMarshaling);
+
+void unmarshal_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceProtectedCapabilitiesKHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, marshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, unmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkAttachmentReferenceStencilLayout, marshal_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkAttachmentReferenceStencilLayout, unmarshal_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkAttachmentDescriptionStencilLayout, marshal_VkAttachmentDescriptionStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkAttachmentDescriptionStencilLayout, unmarshal_VkAttachmentDescriptionStencilLayoutKHR);
+
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, marshal_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, unmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_buffer_device_address
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceBufferDeviceAddressFeatures, marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures, unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkBufferDeviceAddressInfo, marshal_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBufferDeviceAddressInfo, unmarshal_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkBufferOpaqueCaptureAddressCreateInfo, marshal_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBufferOpaqueCaptureAddressCreateInfo, unmarshal_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkMemoryOpaqueCaptureAddressAllocateInfo, marshal_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo, unmarshal_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkDeviceMemoryOpaqueCaptureAddressInfo, marshal_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo, unmarshal_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+#define OP_vkGetBufferDeviceAddressKHR 219261480
+#define OP_vkGetBufferOpaqueCaptureAddressKHR 285631711
+#define OP_vkGetDeviceMemoryOpaqueCaptureAddressKHR 294671624
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#define OP_vkCreateDeferredOperationKHR 274342644
+#define OP_vkDestroyDeferredOperationKHR 215419514
+#define OP_vkGetDeferredOperationMaxConcurrencyKHR 203387076
+#define OP_vkGetDeferredOperationResultKHR 263822960
+#define OP_vkDeferredOperationJoinKHR 218492930
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void marshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forUnmarshaling);
+
+void marshal_VkPipelineInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineInfoKHR* forMarshaling);
+
+void unmarshal_VkPipelineInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineInfoKHR* forUnmarshaling);
+
+void marshal_VkPipelineExecutablePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutablePropertiesKHR* forMarshaling);
+
+void unmarshal_VkPipelineExecutablePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutablePropertiesKHR* forUnmarshaling);
+
+void marshal_VkPipelineExecutableInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInfoKHR* forMarshaling);
+
+void unmarshal_VkPipelineExecutableInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableInfoKHR* forUnmarshaling);
+
+void marshal_VkPipelineExecutableStatisticValueKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticValueKHR* forMarshaling);
+
+void unmarshal_VkPipelineExecutableStatisticValueKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableStatisticValueKHR* forUnmarshaling);
+
+void marshal_VkPipelineExecutableStatisticKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticKHR* forMarshaling);
+
+void unmarshal_VkPipelineExecutableStatisticKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableStatisticKHR* forUnmarshaling);
+
+void marshal_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInternalRepresentationKHR* forMarshaling);
+
+void unmarshal_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineExecutableInternalRepresentationKHR* forUnmarshaling);
+
+#define OP_vkGetPipelineExecutablePropertiesKHR 269458798
+#define OP_vkGetPipelineExecutableStatisticsKHR 271191699
+#define OP_vkGetPipelineExecutableInternalRepresentationsKHR 274148497
+#endif
+#ifdef VK_KHR_pipeline_library
+void marshal_VkPipelineLibraryCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineLibraryCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkPipelineLibraryCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkPipelineLibraryCreateInfoKHR* forUnmarshaling);
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void marshal_VkBufferCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferCopy2KHR* forMarshaling);
+
+void unmarshal_VkBufferCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    VkBufferCopy2KHR* forUnmarshaling);
+
+void marshal_VkCopyBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferInfo2KHR* forMarshaling);
+
+void unmarshal_VkCopyBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyBufferInfo2KHR* forUnmarshaling);
+
+void marshal_VkImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy2KHR* forMarshaling);
+
+void unmarshal_VkImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    VkImageCopy2KHR* forUnmarshaling);
+
+void marshal_VkCopyImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageInfo2KHR* forMarshaling);
+
+void unmarshal_VkCopyImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyImageInfo2KHR* forUnmarshaling);
+
+void marshal_VkBufferImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferImageCopy2KHR* forMarshaling);
+
+void unmarshal_VkBufferImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    VkBufferImageCopy2KHR* forUnmarshaling);
+
+void marshal_VkCopyBufferToImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferToImageInfo2KHR* forMarshaling);
+
+void unmarshal_VkCopyBufferToImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyBufferToImageInfo2KHR* forUnmarshaling);
+
+void marshal_VkCopyImageToBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageToBufferInfo2KHR* forMarshaling);
+
+void unmarshal_VkCopyImageToBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyImageToBufferInfo2KHR* forUnmarshaling);
+
+void marshal_VkImageBlit2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit2KHR* forMarshaling);
+
+void unmarshal_VkImageBlit2KHR(
+    VulkanStreamGuest* vkStream,
+    VkImageBlit2KHR* forUnmarshaling);
+
+void marshal_VkBlitImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBlitImageInfo2KHR* forMarshaling);
+
+void unmarshal_VkBlitImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkBlitImageInfo2KHR* forUnmarshaling);
+
+void marshal_VkImageResolve2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageResolve2KHR* forMarshaling);
+
+void unmarshal_VkImageResolve2KHR(
+    VulkanStreamGuest* vkStream,
+    VkImageResolve2KHR* forUnmarshaling);
+
+void marshal_VkResolveImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkResolveImageInfo2KHR* forMarshaling);
+
+void unmarshal_VkResolveImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    VkResolveImageInfo2KHR* forUnmarshaling);
+
+#define OP_vkCmdCopyBuffer2KHR 247893766
+#define OP_vkCmdCopyImage2KHR 227008250
+#define OP_vkCmdCopyBufferToImage2KHR 248841963
+#define OP_vkCmdCopyImageToBuffer2KHR 252249060
+#define OP_vkCmdBlitImage2KHR 259838288
+#define OP_vkCmdResolveImage2KHR 254857232
+#endif
 #ifdef VK_ANDROID_native_buffer
 void marshal_VkNativeBufferANDROID(
     VulkanStreamGuest* vkStream,
@@ -2449,6 +3562,58 @@
     VkDedicatedAllocationMemoryAllocateInfoNV* forUnmarshaling);
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void marshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* forUnmarshaling);
+
+void marshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkCmdBindTransformFeedbackBuffersEXT 267779978
+#define OP_vkCmdBeginTransformFeedbackEXT 294396901
+#define OP_vkCmdEndTransformFeedbackEXT 272333731
+#define OP_vkCmdBeginQueryIndexedEXT 275810601
+#define OP_vkCmdEndQueryIndexedEXT 279821337
+#define OP_vkCmdDrawIndirectByteCountEXT 285235943
+#endif
+#ifdef VK_NVX_image_view_handle
+void marshal_VkImageViewHandleInfoNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewHandleInfoNVX* forMarshaling);
+
+void unmarshal_VkImageViewHandleInfoNVX(
+    VulkanStreamGuest* vkStream,
+    VkImageViewHandleInfoNVX* forUnmarshaling);
+
+void marshal_VkImageViewAddressPropertiesNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewAddressPropertiesNVX* forMarshaling);
+
+void unmarshal_VkImageViewAddressPropertiesNVX(
+    VulkanStreamGuest* vkStream,
+    VkImageViewAddressPropertiesNVX* forUnmarshaling);
+
+#define OP_vkGetImageViewHandleNVX 204379647
+#define OP_vkGetImageViewAddressNVX 210668576
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #define OP_vkCmdDrawIndirectCountAMD 20262
 #define OP_vkCmdDrawIndexedIndirectCountAMD 20263
@@ -2490,6 +3655,27 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void marshal_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanStreamGuest* vkStream,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* forMarshaling);
+
+void unmarshal_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanStreamGuest* vkStream,
+    VkStreamDescriptorSurfaceCreateInfoGGP* forUnmarshaling);
+
+#define OP_vkCreateStreamDescriptorSurfaceGGP 241902685
+#endif
+#ifdef VK_NV_corner_sampled_image
+void marshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* forUnmarshaling);
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -2575,6 +3761,34 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void marshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void marshal_VkImageViewASTCDecodeModeEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewASTCDecodeModeEXT* forMarshaling);
+
+void unmarshal_VkImageViewASTCDecodeModeEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageViewASTCDecodeModeEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void marshal_VkConditionalRenderingBeginInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -2603,129 +3817,6 @@
 #define OP_vkCmdBeginConditionalRenderingEXT 20268
 #define OP_vkCmdEndConditionalRenderingEXT 20269
 #endif
-#ifdef VK_NVX_device_generated_commands
-void marshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling);
-
-void unmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStreamGuest* vkStream,
-    VkDeviceGeneratedCommandsFeaturesNVX* forUnmarshaling);
-
-void marshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling);
-
-void unmarshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStreamGuest* vkStream,
-    VkDeviceGeneratedCommandsLimitsNVX* forUnmarshaling);
-
-void marshal_VkIndirectCommandsTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsTokenNVX* forMarshaling);
-
-void unmarshal_VkIndirectCommandsTokenNVX(
-    VulkanStreamGuest* vkStream,
-    VkIndirectCommandsTokenNVX* forUnmarshaling);
-
-void marshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutTokenNVX* forMarshaling);
-
-void unmarshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStreamGuest* vkStream,
-    VkIndirectCommandsLayoutTokenNVX* forUnmarshaling);
-
-void marshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling);
-
-void unmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkIndirectCommandsLayoutCreateInfoNVX* forUnmarshaling);
-
-void marshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdProcessCommandsInfoNVX* forMarshaling);
-
-void unmarshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkCmdProcessCommandsInfoNVX* forUnmarshaling);
-
-void marshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling);
-
-void unmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkCmdReserveSpaceForCommandsInfoNVX* forUnmarshaling);
-
-void marshal_VkObjectTableCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableCreateInfoNVX* forMarshaling);
-
-void unmarshal_VkObjectTableCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableCreateInfoNVX* forUnmarshaling);
-
-void marshal_VkObjectTableEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableEntryNVX* forMarshaling);
-
-void unmarshal_VkObjectTableEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableEntryNVX* forUnmarshaling);
-
-void marshal_VkObjectTablePipelineEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePipelineEntryNVX* forMarshaling);
-
-void unmarshal_VkObjectTablePipelineEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTablePipelineEntryNVX* forUnmarshaling);
-
-void marshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableDescriptorSetEntryNVX* forMarshaling);
-
-void unmarshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableDescriptorSetEntryNVX* forUnmarshaling);
-
-void marshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableVertexBufferEntryNVX* forMarshaling);
-
-void unmarshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableVertexBufferEntryNVX* forUnmarshaling);
-
-void marshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableIndexBufferEntryNVX* forMarshaling);
-
-void unmarshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTableIndexBufferEntryNVX* forUnmarshaling);
-
-void marshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePushConstantEntryNVX* forMarshaling);
-
-void unmarshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStreamGuest* vkStream,
-    VkObjectTablePushConstantEntryNVX* forUnmarshaling);
-
-#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(
     VulkanStreamGuest* vkStream,
@@ -2908,6 +3999,24 @@
     VkPipelineRasterizationConservativeStateCreateInfoEXT* forUnmarshaling);
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void marshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -2951,27 +4060,19 @@
 
 #define OP_vkCreateMacOSSurfaceMVK 20293
 #endif
+#ifdef VK_MVK_moltenvk
+#define OP_vkGetMTLDeviceMVK 20334
+#define OP_vkSetMTLTextureMVK 20335
+#define OP_vkGetMTLTextureMVK 20336
+#define OP_vkGetMTLBufferMVK 20337
+#define OP_vkUseIOSurfaceMVK 20338
+#define OP_vkGetIOSurfaceMVK 20339
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void marshal_VkDebugUtilsObjectNameInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsObjectNameInfoEXT* forMarshaling);
-
-void unmarshal_VkDebugUtilsObjectNameInfoEXT(
-    VulkanStreamGuest* vkStream,
-    VkDebugUtilsObjectNameInfoEXT* forUnmarshaling);
-
-void marshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsObjectTagInfoEXT* forMarshaling);
-
-void unmarshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStreamGuest* vkStream,
-    VkDebugUtilsObjectTagInfoEXT* forUnmarshaling);
-
 void marshal_VkDebugUtilsLabelEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsLabelEXT* forMarshaling);
@@ -2980,6 +4081,14 @@
     VulkanStreamGuest* vkStream,
     VkDebugUtilsLabelEXT* forUnmarshaling);
 
+void marshal_VkDebugUtilsObjectNameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsObjectNameInfoEXT* forMarshaling);
+
+void unmarshal_VkDebugUtilsObjectNameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDebugUtilsObjectNameInfoEXT* forUnmarshaling);
+
 void marshal_VkDebugUtilsMessengerCallbackDataEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling);
@@ -2996,6 +4105,14 @@
     VulkanStreamGuest* vkStream,
     VkDebugUtilsMessengerCreateInfoEXT* forUnmarshaling);
 
+void marshal_VkDebugUtilsObjectTagInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsObjectTagInfoEXT* forMarshaling);
+
+void unmarshal_VkDebugUtilsObjectTagInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDebugUtilsObjectTagInfoEXT* forUnmarshaling);
+
 #define OP_vkSetDebugUtilsObjectNameEXT 20294
 #define OP_vkSetDebugUtilsObjectTagEXT 20295
 #define OP_vkQueueBeginDebugUtilsLabelEXT 20296
@@ -3061,21 +4178,13 @@
 #define OP_vkGetMemoryAndroidHardwareBufferANDROID 20306
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void marshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkSamplerReductionModeCreateInfoEXT* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkSamplerReductionModeCreateInfo, marshal_VkSamplerReductionModeCreateInfoEXT);
 
-void unmarshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    VkSamplerReductionModeCreateInfoEXT* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkSamplerReductionModeCreateInfo, unmarshal_VkSamplerReductionModeCreateInfoEXT);
 
-void marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceSamplerFilterMinmaxProperties, marshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
-void unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties, unmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
 #endif
 #ifdef VK_AMD_gpu_shader_int16
@@ -3084,6 +4193,40 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void marshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* forUnmarshaling);
+
+void marshal_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* forMarshaling);
+
+void unmarshal_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanStreamGuest* vkStream,
+    VkWriteDescriptorSetInlineUniformBlockEXT* forUnmarshaling);
+
+void marshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -3202,8 +4345,77 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void marshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void marshal_VkDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesEXT* forMarshaling);
+
+void unmarshal_VkDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkDrmFormatModifierPropertiesEXT* forUnmarshaling);
+
+void marshal_VkDrmFormatModifierPropertiesListEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesListEXT* forMarshaling);
+
+void unmarshal_VkDrmFormatModifierPropertiesListEXT(
+    VulkanStreamGuest* vkStream,
+    VkDrmFormatModifierPropertiesListEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forUnmarshaling);
+
+void marshal_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageDrmFormatModifierListCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierPropertiesEXT* forMarshaling);
+
+void unmarshal_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkImageDrmFormatModifierPropertiesEXT* forUnmarshaling);
+
+#define OP_vkGetImageDrmFormatModifierPropertiesEXT 251301237
+#endif
 #ifdef VK_EXT_validation_cache
 void marshal_VkValidationCacheCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -3227,49 +4439,275 @@
 #define OP_vkGetValidationCacheDataEXT 20312
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkDescriptorSetLayoutBindingFlagsCreateInfo, marshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo, unmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceDescriptorIndexingFeatures, marshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceDescriptorIndexingFeatures, unmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceDescriptorIndexingProperties, marshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceDescriptorIndexingProperties, unmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkDescriptorSetVariableDescriptorCountAllocateInfo, marshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo, unmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling);
+DEFINE_ALIAS_FUNCTION(marshal_VkDescriptorSetVariableDescriptorCountLayoutSupport, marshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
-void unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStreamGuest* vkStream,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forUnmarshaling);
+DEFINE_ALIAS_FUNCTION(unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport, unmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+void marshal_VkShadingRatePaletteNV(
+    VulkanStreamGuest* vkStream,
+    const VkShadingRatePaletteNV* forMarshaling);
+
+void unmarshal_VkShadingRatePaletteNV(
+    VulkanStreamGuest* vkStream,
+    VkShadingRatePaletteNV* forUnmarshaling);
+
+void marshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* forMarshaling);
+
+void unmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShadingRateImagePropertiesNV* forUnmarshaling);
+
+void marshal_VkCoarseSampleLocationNV(
+    VulkanStreamGuest* vkStream,
+    const VkCoarseSampleLocationNV* forMarshaling);
+
+void unmarshal_VkCoarseSampleLocationNV(
+    VulkanStreamGuest* vkStream,
+    VkCoarseSampleLocationNV* forUnmarshaling);
+
+void marshal_VkCoarseSampleOrderCustomNV(
+    VulkanStreamGuest* vkStream,
+    const VkCoarseSampleOrderCustomNV* forMarshaling);
+
+void unmarshal_VkCoarseSampleOrderCustomNV(
+    VulkanStreamGuest* vkStream,
+    VkCoarseSampleOrderCustomNV* forUnmarshaling);
+
+void marshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forMarshaling);
+
+void unmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forUnmarshaling);
+
+#define OP_vkCmdBindShadingRateImageNV 238618340
+#define OP_vkCmdSetViewportShadingRatePaletteNV 215295078
+#define OP_vkCmdSetCoarseSampleOrderNV 236858637
+#endif
+#ifdef VK_NV_ray_tracing
+void marshal_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoNV* forMarshaling);
+
+void unmarshal_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingShaderGroupCreateInfoNV* forUnmarshaling);
+
+void marshal_VkRayTracingPipelineCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoNV* forMarshaling);
+
+void unmarshal_VkRayTracingPipelineCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingPipelineCreateInfoNV* forUnmarshaling);
+
+void marshal_VkGeometryTrianglesNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryTrianglesNV* forMarshaling);
+
+void unmarshal_VkGeometryTrianglesNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryTrianglesNV* forUnmarshaling);
+
+void marshal_VkGeometryAABBNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryAABBNV* forMarshaling);
+
+void unmarshal_VkGeometryAABBNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryAABBNV* forUnmarshaling);
+
+void marshal_VkGeometryDataNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryDataNV* forMarshaling);
+
+void unmarshal_VkGeometryDataNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryDataNV* forUnmarshaling);
+
+void marshal_VkGeometryNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryNV* forMarshaling);
+
+void unmarshal_VkGeometryNV(
+    VulkanStreamGuest* vkStream,
+    VkGeometryNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInfoNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureInfoNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureCreateInfoNV* forUnmarshaling);
+
+void marshal_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindAccelerationStructureMemoryInfoNV* forMarshaling);
+
+void unmarshal_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkBindAccelerationStructureMemoryInfoNV* forUnmarshaling);
+
+void marshal_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureNV* forMarshaling);
+
+void unmarshal_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanStreamGuest* vkStream,
+    VkWriteDescriptorSetAccelerationStructureNV* forUnmarshaling);
+
+void marshal_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* forMarshaling);
+
+void unmarshal_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureMemoryRequirementsInfoNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPropertiesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayTracingPropertiesNV* forUnmarshaling);
+
+void marshal_VkTransformMatrixKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTransformMatrixKHR* forMarshaling);
+
+void unmarshal_VkTransformMatrixKHR(
+    VulkanStreamGuest* vkStream,
+    VkTransformMatrixKHR* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkTransformMatrixKHR, marshal_VkTransformMatrixNV);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkTransformMatrixKHR, unmarshal_VkTransformMatrixNV);
+
+void marshal_VkAabbPositionsKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAabbPositionsKHR* forMarshaling);
+
+void unmarshal_VkAabbPositionsKHR(
+    VulkanStreamGuest* vkStream,
+    VkAabbPositionsKHR* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkAabbPositionsKHR, marshal_VkAabbPositionsNV);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkAabbPositionsKHR, unmarshal_VkAabbPositionsNV);
+
+void marshal_VkAccelerationStructureInstanceKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInstanceKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureInstanceKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureInstanceKHR* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkAccelerationStructureInstanceKHR, marshal_VkAccelerationStructureInstanceNV);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkAccelerationStructureInstanceKHR, unmarshal_VkAccelerationStructureInstanceNV);
+
+#define OP_vkCreateAccelerationStructureNV 259713020
+#define OP_vkDestroyAccelerationStructureNV 252775746
+#define OP_vkGetAccelerationStructureMemoryRequirementsNV 220234370
+#define OP_vkBindAccelerationStructureMemoryNV 202856743
+#define OP_vkCmdBuildAccelerationStructureNV 269050897
+#define OP_vkCmdCopyAccelerationStructureNV 211075498
+#define OP_vkCmdTraceRaysNV 210219912
+#define OP_vkCreateRayTracingPipelinesNV 203653638
+#define OP_vkGetRayTracingShaderGroupHandlesKHR 271962641
+#define OP_vkGetRayTracingShaderGroupHandlesNV 230045846
+#define OP_vkGetAccelerationStructureHandleNV 269898134
+#define OP_vkCmdWriteAccelerationStructuresPropertiesNV 207954431
+#define OP_vkCompileDeferredNV 278731610
+#endif
+#ifdef VK_NV_representative_fragment_test
+void marshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forUnmarshaling);
+
+void marshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forMarshaling);
+
+void unmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void marshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* forUnmarshaling);
+
+void marshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* forMarshaling);
+
+void unmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 void marshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -3310,6 +4748,28 @@
 #ifdef VK_AMD_buffer_marker
 #define OP_vkCmdWriteBufferMarkerAMD 20314
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void marshal_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCompilerControlCreateInfoAMD* forMarshaling);
+
+void unmarshal_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCompilerControlCreateInfoAMD* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void marshal_VkCalibratedTimestampInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkCalibratedTimestampInfoEXT* forMarshaling);
+
+void unmarshal_VkCalibratedTimestampInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkCalibratedTimestampInfoEXT* forUnmarshaling);
+
+#define OP_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT 295643221
+#define OP_vkGetCalibratedTimestampsEXT 203583186
+#endif
 #ifdef VK_AMD_shader_core_properties
 void marshal_VkPhysicalDeviceShaderCorePropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -3320,6 +4780,16 @@
     VkPhysicalDeviceShaderCorePropertiesAMD* forUnmarshaling);
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void marshal_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* forMarshaling);
+
+void unmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkDeviceMemoryOverallocationCreateInfoAMD* forUnmarshaling);
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void marshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     VulkanStreamGuest* vkStream,
@@ -3345,9 +4815,123 @@
     VulkanStreamGuest* vkStream,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* forUnmarshaling);
 
+void marshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_GGP_frame_token
+void marshal_VkPresentFrameTokenGGP(
+    VulkanStreamGuest* vkStream,
+    const VkPresentFrameTokenGGP* forMarshaling);
+
+void unmarshal_VkPresentFrameTokenGGP(
+    VulkanStreamGuest* vkStream,
+    VkPresentFrameTokenGGP* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void marshal_VkPipelineCreationFeedbackEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackEXT* forMarshaling);
+
+void unmarshal_VkPipelineCreationFeedbackEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCreationFeedbackEXT* forUnmarshaling);
+
+void marshal_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCreationFeedbackCreateInfoEXT* forUnmarshaling);
+
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void marshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_mesh_shader
+void marshal_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMeshShaderFeaturesNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMeshShaderPropertiesNV* forUnmarshaling);
+
+void marshal_VkDrawMeshTasksIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkDrawMeshTasksIndirectCommandNV* forMarshaling);
+
+void unmarshal_VkDrawMeshTasksIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkDrawMeshTasksIndirectCommandNV* forUnmarshaling);
+
+#define OP_vkCmdDrawMeshTasksNV 207334931
+#define OP_vkCmdDrawMeshTasksIndirectNV 274079208
+#define OP_vkCmdDrawMeshTasksIndirectCountNV 223801967
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void marshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void marshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void marshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* forMarshaling);
+
+void unmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* forUnmarshaling);
+
+#define OP_vkCmdSetExclusiveScissorNV 225408194
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void marshal_VkQueueFamilyCheckpointPropertiesNV(
     VulkanStreamGuest* vkStream,
@@ -3368,8 +4952,145 @@
 #define OP_vkCmdSetCheckpointNV 20315
 #define OP_vkGetQueueCheckpointDataNV 20316
 #endif
-#ifdef VK_GOOGLE_address_space
-#define OP_vkMapMemoryIntoAddressSpaceGOOGLE 20317
+#ifdef VK_INTEL_shader_integer_functions2
+void marshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forUnmarshaling);
+
+#endif
+#ifdef VK_INTEL_performance_query
+void marshal_VkPerformanceValueDataINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueDataINTEL* forMarshaling);
+
+void unmarshal_VkPerformanceValueDataINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceValueDataINTEL* forUnmarshaling);
+
+void marshal_VkPerformanceValueINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueINTEL* forMarshaling);
+
+void unmarshal_VkPerformanceValueINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceValueINTEL* forUnmarshaling);
+
+void marshal_VkInitializePerformanceApiInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkInitializePerformanceApiInfoINTEL* forMarshaling);
+
+void unmarshal_VkInitializePerformanceApiInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkInitializePerformanceApiInfoINTEL* forUnmarshaling);
+
+void marshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* forMarshaling);
+
+void unmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkQueryPoolPerformanceQueryCreateInfoINTEL, marshal_VkQueryPoolCreateInfoINTEL);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL, unmarshal_VkQueryPoolCreateInfoINTEL);
+
+void marshal_VkPerformanceMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceMarkerInfoINTEL* forMarshaling);
+
+void unmarshal_VkPerformanceMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceMarkerInfoINTEL* forUnmarshaling);
+
+void marshal_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceStreamMarkerInfoINTEL* forMarshaling);
+
+void unmarshal_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceStreamMarkerInfoINTEL* forUnmarshaling);
+
+void marshal_VkPerformanceOverrideInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceOverrideInfoINTEL* forMarshaling);
+
+void unmarshal_VkPerformanceOverrideInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceOverrideInfoINTEL* forUnmarshaling);
+
+void marshal_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceConfigurationAcquireInfoINTEL* forMarshaling);
+
+void unmarshal_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    VkPerformanceConfigurationAcquireInfoINTEL* forUnmarshaling);
+
+#define OP_vkInitializePerformanceApiINTEL 203336121
+#define OP_vkUninitializePerformanceApiINTEL 296137321
+#define OP_vkCmdSetPerformanceMarkerINTEL 270016385
+#define OP_vkCmdSetPerformanceStreamMarkerINTEL 261519634
+#define OP_vkCmdSetPerformanceOverrideINTEL 251310287
+#define OP_vkAcquirePerformanceConfigurationINTEL 245737492
+#define OP_vkReleasePerformanceConfigurationINTEL 252877217
+#define OP_vkQueueSetPerformanceConfigurationINTEL 294947726
+#define OP_vkGetPerformanceParameterINTEL 213620482
+#endif
+#ifdef VK_EXT_pci_bus_info
+void marshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void marshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* forMarshaling);
+
+void unmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanStreamGuest* vkStream,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* forUnmarshaling);
+
+void marshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* forMarshaling);
+
+void unmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* forUnmarshaling);
+
+#define OP_vkSetLocalDimmingAMD 267533472
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void marshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* forMarshaling);
+
+void unmarshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* forUnmarshaling);
+
+#define OP_vkCreateImagePipeSurfaceFUCHSIA 261626137
+#endif
+#ifdef VK_EXT_metal_surface
+void marshal_VkMetalSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMetalSurfaceCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkMetalSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkMetalSurfaceCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkCreateMetalSurfaceEXT 254915953
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void marshal_VkImportColorBufferGOOGLE(
@@ -3399,48 +5120,1000 @@
 #define OP_vkRegisterImageColorBufferGOOGLE 20318
 #define OP_vkRegisterBufferColorBufferGOOGLE 20319
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
-#define OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE 20320
+#ifdef VK_EXT_scalar_block_layout
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceScalarBlockLayoutFeatures, marshal_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures, unmarshal_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
+#endif
+#ifdef VK_GOOGLE_decorate_string
+#endif
+#ifdef VK_EXT_subgroup_size_control
+void marshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* forUnmarshaling);
+
+void marshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_AMD_shader_core_properties2
+void marshal_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderCoreProperties2AMD* forUnmarshaling);
+
+#endif
+#ifdef VK_AMD_device_coherent_memory
+void marshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+void marshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_memory_budget
+void marshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_memory_priority
+void marshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* forUnmarshaling);
+
+void marshal_VkMemoryPriorityAllocateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryPriorityAllocateInfoEXT* forMarshaling);
+
+void unmarshal_VkMemoryPriorityAllocateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkMemoryPriorityAllocateInfoEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void marshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forUnmarshaling);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, marshal_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, unmarshal_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(marshal_VkBufferDeviceAddressInfo, marshal_VkBufferDeviceAddressInfoEXT);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkBufferDeviceAddressInfo, unmarshal_VkBufferDeviceAddressInfoEXT);
+
+void marshal_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkBufferDeviceAddressCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkGetBufferDeviceAddressEXT 224361693
+#endif
+#ifdef VK_EXT_tooling_info
+void marshal_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceToolPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceToolPropertiesEXT* forUnmarshaling);
+
+#define OP_vkGetPhysicalDeviceToolPropertiesEXT 282247593
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+DEFINE_ALIAS_FUNCTION(marshal_VkImageStencilUsageCreateInfo, marshal_VkImageStencilUsageCreateInfoEXT);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkImageStencilUsageCreateInfo, unmarshal_VkImageStencilUsageCreateInfoEXT);
+
+#endif
+#ifdef VK_EXT_validation_features
+void marshal_VkValidationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkValidationFeaturesEXT* forMarshaling);
+
+void unmarshal_VkValidationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkValidationFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void marshal_VkCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkCooperativeMatrixPropertiesNV* forMarshaling);
+
+void unmarshal_VkCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkCooperativeMatrixPropertiesNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* forUnmarshaling);
+
+#define OP_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV 287711429
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void marshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* forUnmarshaling);
+
+void marshal_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCoverageReductionStateCreateInfoNV* forMarshaling);
+
+void unmarshal_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineCoverageReductionStateCreateInfoNV* forUnmarshaling);
+
+void marshal_VkFramebufferMixedSamplesCombinationNV(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferMixedSamplesCombinationNV* forMarshaling);
+
+void unmarshal_VkFramebufferMixedSamplesCombinationNV(
+    VulkanStreamGuest* vkStream,
+    VkFramebufferMixedSamplesCombinationNV* forUnmarshaling);
+
+#define OP_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 292032159
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void marshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void marshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void marshal_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveInfoEXT* forMarshaling);
+
+void unmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceFullScreenExclusiveInfoEXT* forUnmarshaling);
+
+void marshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* forMarshaling);
+
+void unmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* forUnmarshaling);
+
+#define OP_vkGetPhysicalDeviceSurfacePresentModes2EXT 268126279
+#define OP_vkAcquireFullScreenExclusiveModeEXT 200946668
+#define OP_vkReleaseFullScreenExclusiveModeEXT 257629142
+void marshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* forMarshaling);
+
+void unmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* forUnmarshaling);
+
+#define OP_vkGetDeviceGroupSurfacePresentModes2EXT 206369543
+#endif
+#ifdef VK_EXT_headless_surface
+void marshal_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkHeadlessSurfaceCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkHeadlessSurfaceCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkCreateHeadlessSurfaceEXT 298411290
+#endif
+#ifdef VK_EXT_line_rasterization
+void marshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* forUnmarshaling);
+
+void marshal_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPipelineRasterizationLineStateCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkCmdSetLineStippleEXT 263855692
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void marshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_host_query_reset
+DEFINE_ALIAS_FUNCTION(marshal_VkPhysicalDeviceHostQueryResetFeatures, marshal_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(unmarshal_VkPhysicalDeviceHostQueryResetFeatures, unmarshal_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+#define OP_vkResetQueryPoolEXT 242995959
+#endif
+#ifdef VK_EXT_index_type_uint8
+void marshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void marshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forUnmarshaling);
+
+#define OP_vkCmdSetCullModeEXT 266285895
+#define OP_vkCmdSetFrontFaceEXT 212644406
+#define OP_vkCmdSetPrimitiveTopologyEXT 260783979
+#define OP_vkCmdSetViewportWithCountEXT 257105245
+#define OP_vkCmdSetScissorWithCountEXT 204588120
+#define OP_vkCmdBindVertexBuffers2EXT 243419921
+#define OP_vkCmdSetDepthTestEnableEXT 233771166
+#define OP_vkCmdSetDepthWriteEnableEXT 218663304
+#define OP_vkCmdSetDepthCompareOpEXT 247761589
+#define OP_vkCmdSetDepthBoundsTestEnableEXT 223213519
+#define OP_vkCmdSetStencilTestEnableEXT 286438749
+#define OP_vkCmdSetStencilOpEXT 277159578
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void marshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void marshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forUnmarshaling);
+
+void marshal_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsShaderGroupCreateInfoNV* forMarshaling);
+
+void unmarshal_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGraphicsShaderGroupCreateInfoNV* forUnmarshaling);
+
+void marshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* forMarshaling);
+
+void unmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* forUnmarshaling);
+
+void marshal_VkBindShaderGroupIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindShaderGroupIndirectCommandNV* forMarshaling);
+
+void unmarshal_VkBindShaderGroupIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkBindShaderGroupIndirectCommandNV* forUnmarshaling);
+
+void marshal_VkBindIndexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindIndexBufferIndirectCommandNV* forMarshaling);
+
+void unmarshal_VkBindIndexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkBindIndexBufferIndirectCommandNV* forUnmarshaling);
+
+void marshal_VkBindVertexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindVertexBufferIndirectCommandNV* forMarshaling);
+
+void unmarshal_VkBindVertexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkBindVertexBufferIndirectCommandNV* forUnmarshaling);
+
+void marshal_VkSetStateFlagsIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkSetStateFlagsIndirectCommandNV* forMarshaling);
+
+void unmarshal_VkSetStateFlagsIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    VkSetStateFlagsIndirectCommandNV* forUnmarshaling);
+
+void marshal_VkIndirectCommandsStreamNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsStreamNV* forMarshaling);
+
+void unmarshal_VkIndirectCommandsStreamNV(
+    VulkanStreamGuest* vkStream,
+    VkIndirectCommandsStreamNV* forUnmarshaling);
+
+void marshal_VkIndirectCommandsLayoutTokenNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutTokenNV* forMarshaling);
+
+void unmarshal_VkIndirectCommandsLayoutTokenNV(
+    VulkanStreamGuest* vkStream,
+    VkIndirectCommandsLayoutTokenNV* forUnmarshaling);
+
+void marshal_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutCreateInfoNV* forMarshaling);
+
+void unmarshal_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkIndirectCommandsLayoutCreateInfoNV* forUnmarshaling);
+
+void marshal_VkGeneratedCommandsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsInfoNV* forMarshaling);
+
+void unmarshal_VkGeneratedCommandsInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGeneratedCommandsInfoNV* forUnmarshaling);
+
+void marshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* forMarshaling);
+
+void unmarshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* forUnmarshaling);
+
+#define OP_vkGetGeneratedCommandsMemoryRequirementsNV 249047049
+#define OP_vkCmdPreprocessGeneratedCommandsNV 297624330
+#define OP_vkCmdExecuteGeneratedCommandsNV 234711184
+#define OP_vkCmdBindPipelineShaderGroupNV 270362239
+#define OP_vkCreateIndirectCommandsLayoutNV 285310710
+#define OP_vkDestroyIndirectCommandsLayoutNV 292584135
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void marshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void marshal_VkRenderPassTransformBeginInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassTransformBeginInfoQCOM* forMarshaling);
+
+void unmarshal_VkRenderPassTransformBeginInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    VkRenderPassTransformBeginInfoQCOM* forUnmarshaling);
+
+void marshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forMarshaling);
+
+void unmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void marshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forUnmarshaling);
+
+void marshal_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryReportCallbackDataEXT* forMarshaling);
+
+void unmarshal_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanStreamGuest* vkStream,
+    VkDeviceMemoryReportCallbackDataEXT* forUnmarshaling);
+
+void marshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_robustness2
+void marshal_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRobustness2FeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRobustness2PropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void marshal_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkSamplerCustomBorderColorCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void marshal_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePrivateDataFeaturesEXT* forUnmarshaling);
+
+void marshal_VkDevicePrivateDataCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDevicePrivateDataCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkDevicePrivateDataCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDevicePrivateDataCreateInfoEXT* forUnmarshaling);
+
+void marshal_VkPrivateDataSlotCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPrivateDataSlotCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkPrivateDataSlotCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkPrivateDataSlotCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkCreatePrivateDataSlotEXT 236374049
+#define OP_vkDestroyPrivateDataSlotEXT 208891309
+#define OP_vkSetPrivateDataEXT 225259406
+#define OP_vkGetPrivateDataEXT 291399427
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void marshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void marshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forUnmarshaling);
+
+void marshal_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* forMarshaling);
+
+void unmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkDeviceDiagnosticsConfigCreateInfoNV* forUnmarshaling);
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void marshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forUnmarshaling);
+
+void marshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forMarshaling);
+
+void unmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forUnmarshaling);
+
+#define OP_vkCmdSetFragmentShadingRateEnumNV 264649847
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void marshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void marshal_VkCopyCommandTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCopyCommandTransformInfoQCOM* forMarshaling);
+
+void unmarshal_VkCopyCommandTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    VkCopyCommandTransformInfoQCOM* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_image_robustness
+void marshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_4444_formats
+void marshal_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling);
+
+void unmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDevice4444FormatsFeaturesEXT* forUnmarshaling);
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void marshal_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDirectFBSurfaceCreateInfoEXT* forMarshaling);
+
+void unmarshal_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    VkDirectFBSurfaceCreateInfoEXT* forUnmarshaling);
+
+#define OP_vkCreateDirectFBSurfaceEXT 220792403
+#define OP_vkGetPhysicalDeviceDirectFBPresentationSupportEXT 285441990
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#define OP_vkMapMemoryIntoAddressSpaceGOOGLE 20317
+#define OP_vkUpdateDescriptorSetWithTemplateSizedGOOGLE 20320
 #define OP_vkBeginCommandBufferAsyncGOOGLE 20321
 #define OP_vkEndCommandBufferAsyncGOOGLE 20322
 #define OP_vkResetCommandBufferAsyncGOOGLE 20323
 #define OP_vkCommandBufferHostSyncGOOGLE 20324
-#endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
 #define OP_vkCreateImageWithRequirementsGOOGLE 20325
 #define OP_vkCreateBufferWithRequirementsGOOGLE 20326
-#endif
-#ifdef VK_GOOGLE_address_space_info
 #define OP_vkGetMemoryHostAddressInfoGOOGLE 20327
-#endif
-#ifdef VK_GOOGLE_free_memory_sync
 #define OP_vkFreeMemorySyncGOOGLE 20328
-#endif
-#ifdef VK_GOOGLE_async_queue_submit
 #define OP_vkQueueHostSyncGOOGLE 20329
 #define OP_vkQueueSubmitAsyncGOOGLE 20330
 #define OP_vkQueueWaitIdleAsyncGOOGLE 20331
 #define OP_vkQueueBindSparseAsyncGOOGLE 20332
-#endif
-#ifdef VK_GOOGLE_linear_image_layout
 #define OP_vkGetLinearImageLayoutGOOGLE 20333
-#endif
-#ifdef VK_MVK_moltenvk
-#define OP_vkGetMTLDeviceMVK 20334
-#define OP_vkSetMTLTextureMVK 20335
-#define OP_vkGetMTLTextureMVK 20336
-#define OP_vkGetMTLBufferMVK 20337
-#define OP_vkUseIOSurfaceMVK 20338
-#define OP_vkGetIOSurfaceMVK 20339
-#endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
 #define OP_vkQueueFlushCommandsGOOGLE 20340
 #endif
+#ifdef VK_KHR_acceleration_structure
+void marshal_VkDeviceOrHostAddressKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressKHR* forMarshaling);
+
+void unmarshal_VkDeviceOrHostAddressKHR(
+    VulkanStreamGuest* vkStream,
+    VkDeviceOrHostAddressKHR* forUnmarshaling);
+
+void marshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling);
+
+void unmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    VkDeviceOrHostAddressConstKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildRangeInfoKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureBuildRangeInfoKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryTrianglesDataKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryAabbsDataKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryAabbsDataKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryInstancesDataKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryInstancesDataKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureGeometryDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryDataKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureGeometryDataKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryDataKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureGeometryKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureGeometryKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureGeometryKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildGeometryInfoKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureBuildGeometryInfoKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureKHR* forMarshaling);
+
+void unmarshal_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanStreamGuest* vkStream,
+    VkWriteDescriptorSetAccelerationStructureKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureDeviceAddressInfoKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureDeviceAddressInfoKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureVersionInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureVersionInfoKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureVersionInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureVersionInfoKHR* forUnmarshaling);
+
+void marshal_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* forMarshaling);
+
+void unmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyAccelerationStructureToMemoryInfoKHR* forUnmarshaling);
+
+void marshal_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* forMarshaling);
+
+void unmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyMemoryToAccelerationStructureInfoKHR* forUnmarshaling);
+
+void marshal_VkCopyAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureInfoKHR* forMarshaling);
+
+void unmarshal_VkCopyAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkCopyAccelerationStructureInfoKHR* forUnmarshaling);
+
+void marshal_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildSizesInfoKHR* forMarshaling);
+
+void unmarshal_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkAccelerationStructureBuildSizesInfoKHR* forUnmarshaling);
+
+#define OP_vkCreateAccelerationStructureKHR 259403971
+#define OP_vkDestroyAccelerationStructureKHR 223971120
+#define OP_vkCmdBuildAccelerationStructuresKHR 272943905
+#define OP_vkCmdBuildAccelerationStructuresIndirectKHR 258066143
+#define OP_vkBuildAccelerationStructuresKHR 241919567
+#define OP_vkCopyAccelerationStructureKHR 241495016
+#define OP_vkCopyAccelerationStructureToMemoryKHR 256139578
+#define OP_vkCopyMemoryToAccelerationStructureKHR 261558680
+#define OP_vkWriteAccelerationStructuresPropertiesKHR 289745796
+#define OP_vkCmdCopyAccelerationStructureKHR 279460332
+#define OP_vkCmdCopyAccelerationStructureToMemoryKHR 223539733
+#define OP_vkCmdCopyMemoryToAccelerationStructureKHR 203733963
+#define OP_vkGetAccelerationStructureDeviceAddressKHR 223466148
+#define OP_vkCmdWriteAccelerationStructuresPropertiesKHR 271696183
+#define OP_vkGetDeviceAccelerationStructureCompatibilityKHR 266386590
+#define OP_vkGetAccelerationStructureBuildSizesKHR 219720024
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void marshal_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingShaderGroupCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkRayTracingPipelineCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoKHR* forMarshaling);
+
+void unmarshal_VkRayTracingPipelineCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    VkRayTracingPipelineCreateInfoKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forUnmarshaling);
+
+void marshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forUnmarshaling);
+
+void marshal_VkStridedDeviceAddressRegionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkStridedDeviceAddressRegionKHR* forMarshaling);
+
+void unmarshal_VkStridedDeviceAddressRegionKHR(
+    VulkanStreamGuest* vkStream,
+    VkStridedDeviceAddressRegionKHR* forUnmarshaling);
+
+void marshal_VkTraceRaysIndirectCommandKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTraceRaysIndirectCommandKHR* forMarshaling);
+
+void unmarshal_VkTraceRaysIndirectCommandKHR(
+    VulkanStreamGuest* vkStream,
+    VkTraceRaysIndirectCommandKHR* forUnmarshaling);
+
+#define OP_vkCmdTraceRaysKHR 213680716
+#define OP_vkCreateRayTracingPipelinesKHR 247628685
+#define OP_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR 221334934
+#define OP_vkCmdTraceRaysIndirectKHR 211788517
+#define OP_vkGetRayTracingShaderGroupStackSizeKHR 205271933
+#define OP_vkCmdSetRayTracingPipelineStackSizeKHR 260219604
+#endif
+#ifdef VK_KHR_ray_query
+void marshal_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* forMarshaling);
+
+void unmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    VkPhysicalDeviceRayQueryFeaturesKHR* forUnmarshaling);
+
+#endif
 const char* api_opcode_to_string(
     const uint32_t opcode);
 
-#define OP_vkLast 30000
+#define OP_vkFirst_old 20000
+#define OP_vkLast_old 30000
+#define OP_vkFirst 200000000
+#define OP_vkLast 300000000
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_private_defs.h b/system/vulkan_enc/goldfish_vk_private_defs.h
index 8d8cbef..5f10947 100644
--- a/system/vulkan_enc/goldfish_vk_private_defs.h
+++ b/system/vulkan_enc/goldfish_vk_private_defs.h
@@ -85,8 +85,6 @@
 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);
 
-#define VK_GOOGLE_address_space 1
-
 typedef VkResult (VKAPI_PTR *PFN_vkMapMemoryIntoAddressSpaceGOOGLE)(VkDevice device, VkDeviceMemory memory, uint64_t* pAddress);
 
 #define VK_GOOGLE_color_buffer 1
@@ -122,12 +120,8 @@
 typedef VkResult (VKAPI_PTR *PFN_vkRegisterImageColorBufferGOOGLE)(VkDevice device, VkImage image, uint32_t colorBuffer);
 typedef VkResult (VKAPI_PTR *PFN_vkRegisterBufferColorBufferGOOGLE)(VkDevice device, VkBuffer image, uint32_t colorBuffer);
 
-#define VK_GOOGLE_address_space_info 1
-
 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostAddressInfoGOOGLE)(VkDevice device, VkDeviceMemory memory, uint64_t* pAddress, uint64_t* pSize);
 
-#define VK_GOOGLE_free_memory_sync 1
-
 typedef VkResult (VKAPI_PTR *PFN_vkFreeMemorySyncGOOGLE)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocationCallbacks);
 
 #define VK_ANDROID_external_memory_android_hardware_buffer 1
@@ -452,8 +446,6 @@
     uint32_t needHostSync,
     uint32_t sequenceNumber);
 
-#define VK_GOOGLE_create_resources_with_requirements 1
-
 typedef void (VKAPI_PTR *PFN_vkCreateImageWithRequirementsGOOGLE)(
     VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage, VkMemoryRequirements* pMemoryRequirements);
 
@@ -616,7 +608,7 @@
 
 #endif
 
-#define VK_GOOGLE_async_queue_submit 1
+#define VK_GOOGLE_gfxstream 1
 
 typedef void (VKAPI_PTR *PFN_vkQueueHostSyncGOOGLE)(
     VkQueue queue, uint32_t needHostSync, uint32_t sequenceNumber);
@@ -626,11 +618,8 @@
 typedef void (VKAPI_PTR *PFN_vkQueueBindSparseAsyncGOOGLE)(
     VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
 
-#define VK_GOOGLE_linear_image_layout 1
-
 typedef VkResult (VKAPI_PTR *PFN_vkGetLinearImageLayoutGOOGLE)(VkDevice device, VkFormat format, VkDeviceSize* pOffset, VkDeviceSize* pRowPitchAlignment);
 
-#define VK_GOOGLE_queue_submit_with_commands 1
 typedef void (VKAPI_PTR *PFN_vkQueueFlushCommandsGOOGLE)(VkQueue queue, VkDeviceSize dataSize, const void* pData);
 
 #ifdef __cplusplus
@@ -645,4 +634,10 @@
     return std::find_if(arr + begin, e, func) != e;
 }
 
+#define DEFINE_ALIAS_FUNCTION(ORIGINAL_FN, ALIAS_FN) \
+template <typename... Args> \
+inline auto ALIAS_FN(Args&&... args) -> decltype(ORIGINAL_FN(std::forward<Args>(args)...)) { \
+  return ORIGINAL_FN(std::forward<Args>(args)...); \
+}
+
 #endif
diff --git a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
index 50a6b53..814436f 100644
--- a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.cpp
@@ -44,6 +44,264 @@
     uint8_t** ptr);
 
 #ifdef VK_VERSION_1_0
+void reservedmarshal_VkExtent2D(
+    VulkanStreamGuest* vkStream,
+    const VkExtent2D* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkExtent3D(
+    VulkanStreamGuest* vkStream,
+    const VkExtent3D* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkOffset2D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset2D* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (int32_t*)&forMarshaling->x, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+    memcpy(*ptr, (int32_t*)&forMarshaling->y, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
+void reservedmarshal_VkOffset3D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset3D* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (int32_t*)&forMarshaling->x, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+    memcpy(*ptr, (int32_t*)&forMarshaling->y, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+    memcpy(*ptr, (int32_t*)&forMarshaling->z, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
+void reservedmarshal_VkRect2D(
+    VulkanStreamGuest* vkStream,
+    const VkRect2D* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    reservedmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset), ptr);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent), ptr);
+}
+
+void reservedmarshal_VkBaseInStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseInStructure* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+}
+
+void reservedmarshal_VkBaseOutStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseOutStructure* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+}
+
+void reservedmarshal_VkBufferMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkBufferMemoryBarrier* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkDispatchIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDispatchIndirectCommand* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->x, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->y, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->z, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkDrawIndexedIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndexedIndirectCommand* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkDrawIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndirectCommand* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkImageSubresourceRange(
+    VulkanStreamGuest* vkStream,
+    const VkImageSubresourceRange* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
+    *ptr += sizeof(VkImageAspectFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkImageMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkImageMemoryBarrier* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    reservedmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange), ptr);
+}
+
+void reservedmarshal_VkMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryBarrier* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+}
+
+void reservedmarshal_VkAllocationCallbacks(
+    VulkanStreamGuest* vkStream,
+    const VkAllocationCallbacks* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pUserData)
+    {
+        memcpy(*ptr, (void*)forMarshaling->pUserData, sizeof(uint8_t));
+        *ptr += sizeof(uint8_t);
+    }
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->pfnAllocation;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    uint64_t cgen_var_2 = (uint64_t)forMarshaling->pfnReallocation;
+    memcpy((*ptr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    uint64_t cgen_var_3 = (uint64_t)forMarshaling->pfnFree;
+    memcpy((*ptr), &cgen_var_3, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    uint64_t cgen_var_4 = (uint64_t)forMarshaling->pfnInternalAllocation;
+    memcpy((*ptr), &cgen_var_4, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    uint64_t cgen_var_5 = (uint64_t)forMarshaling->pfnInternalFree;
+    memcpy((*ptr), &cgen_var_5, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+}
+
 void reservedmarshal_VkApplicationInfo(
     VulkanStreamGuest* vkStream,
     const VkApplicationInfo* forMarshaling,
@@ -88,8 +346,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
-        memcpy((*ptr), &cgen_var_1, 8);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEngineName;
+        memcpy((*ptr), &cgen_var_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*ptr));
         *ptr += 8;
         if (forMarshaling->pEngineName)
@@ -121,6 +379,37 @@
     *ptr += sizeof(uint32_t);
 }
 
+void reservedmarshal_VkFormatProperties(
+    VulkanStreamGuest* vkStream,
+    const VkFormatProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
+    *ptr += sizeof(VkFormatFeatureFlags);
+    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
+    *ptr += sizeof(VkFormatFeatureFlags);
+    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
+    *ptr += sizeof(VkFormatFeatureFlags);
+}
+
+void reservedmarshal_VkImageFormatProperties(
+    VulkanStreamGuest* vkStream,
+    const VkImageFormatProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->maxExtent), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
+    *ptr += sizeof(VkSampleCountFlags);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
 void reservedmarshal_VkInstanceCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkInstanceCreateInfo* forMarshaling,
@@ -133,8 +422,8 @@
     memcpy(*ptr, (VkInstanceCreateFlags*)&forMarshaling->flags, sizeof(VkInstanceCreateFlags));
     *ptr += sizeof(VkInstanceCreateFlags);
     // WARNING PTR CHECK
-    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
-    memcpy((*ptr), &cgen_var_2, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pApplicationInfo;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pApplicationInfo)
@@ -144,7 +433,11 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     {
-        uint32_t c = forMarshaling->enabledLayerCount;
+        uint32_t c = 0;
+        if ((forMarshaling) != nullptr)
+        {
+            c = forMarshaling->enabledLayerCount;
+        }
         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
         android::base::Stream::toBe32((uint8_t*)*ptr);
         *ptr += sizeof(uint32_t);
@@ -164,7 +457,11 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     {
-        uint32_t c = forMarshaling->enabledExtensionCount;
+        uint32_t c = 0;
+        if ((forMarshaling) != nullptr)
+        {
+            c = forMarshaling->enabledExtensionCount;
+        }
         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
         android::base::Stream::toBe32((uint8_t*)*ptr);
         *ptr += sizeof(uint32_t);
@@ -183,42 +480,28 @@
     }
 }
 
-void reservedmarshal_VkAllocationCallbacks(
+void reservedmarshal_VkMemoryHeap(
     VulkanStreamGuest* vkStream,
-    const VkAllocationCallbacks* forMarshaling,
+    const VkMemoryHeap* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
-    // WARNING PTR CHECK
-    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    memcpy((*ptr), &cgen_var_3, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->pUserData)
-    {
-        memcpy(*ptr, (void*)forMarshaling->pUserData, sizeof(uint8_t));
-        *ptr += sizeof(uint8_t);
-    }
-    uint64_t cgen_var_4 = (uint64_t)forMarshaling->pfnAllocation;
-    memcpy((*ptr), &cgen_var_4, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    uint64_t cgen_var_5 = (uint64_t)forMarshaling->pfnReallocation;
-    memcpy((*ptr), &cgen_var_5, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    uint64_t cgen_var_6 = (uint64_t)forMarshaling->pfnFree;
-    memcpy((*ptr), &cgen_var_6, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    uint64_t cgen_var_7 = (uint64_t)forMarshaling->pfnInternalAllocation;
-    memcpy((*ptr), &cgen_var_7, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    uint64_t cgen_var_8 = (uint64_t)forMarshaling->pfnInternalFree;
-    memcpy((*ptr), &cgen_var_8, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
+    *ptr += sizeof(VkMemoryHeapFlags);
+}
+
+void reservedmarshal_VkMemoryType(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryType* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkMemoryPropertyFlags*)&forMarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
+    *ptr += sizeof(VkMemoryPropertyFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
 }
 
 void reservedmarshal_VkPhysicalDeviceFeatures(
@@ -339,51 +622,6 @@
     *ptr += sizeof(VkBool32);
 }
 
-void reservedmarshal_VkFormatProperties(
-    VulkanStreamGuest* vkStream,
-    const VkFormatProperties* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->linearTilingFeatures, sizeof(VkFormatFeatureFlags));
-    *ptr += sizeof(VkFormatFeatureFlags);
-    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->optimalTilingFeatures, sizeof(VkFormatFeatureFlags));
-    *ptr += sizeof(VkFormatFeatureFlags);
-    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->bufferFeatures, sizeof(VkFormatFeatureFlags));
-    *ptr += sizeof(VkFormatFeatureFlags);
-}
-
-void reservedmarshal_VkExtent3D(
-    VulkanStreamGuest* vkStream,
-    const VkExtent3D* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkImageFormatProperties(
-    VulkanStreamGuest* vkStream,
-    const VkImageFormatProperties* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->maxExtent), ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMipLevels, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxArrayLayers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
-    *ptr += sizeof(VkSampleCountFlags);
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxResourceSize, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-}
-
 void reservedmarshal_VkPhysicalDeviceLimits(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceLimits* forMarshaling,
@@ -522,8 +760,8 @@
     *ptr += 2 * sizeof(float);
     memcpy(*ptr, (uint32_t*)&forMarshaling->viewportSubPixelBits, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_9 = (uint64_t)forMarshaling->minMemoryMapAlignment;
-    memcpy((*ptr), &cgen_var_9, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->minMemoryMapAlignment;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->minTexelBufferOffsetAlignment, sizeof(VkDeviceSize));
@@ -606,6 +844,26 @@
     *ptr += sizeof(VkDeviceSize);
 }
 
+void reservedmarshal_VkPhysicalDeviceMemoryProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        reservedmarshal_VkMemoryType(vkStream, (VkMemoryType*)(forMarshaling->memoryTypes + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        reservedmarshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i), ptr);
+    }
+}
+
 void reservedmarshal_VkPhysicalDeviceSparseProperties(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseProperties* forMarshaling,
@@ -663,50 +921,6 @@
     reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->minImageTransferGranularity), ptr);
 }
 
-void reservedmarshal_VkMemoryType(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryType* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkMemoryPropertyFlags*)&forMarshaling->propertyFlags, sizeof(VkMemoryPropertyFlags));
-    *ptr += sizeof(VkMemoryPropertyFlags);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkMemoryHeap(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryHeap* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    memcpy(*ptr, (VkMemoryHeapFlags*)&forMarshaling->flags, sizeof(VkMemoryHeapFlags));
-    *ptr += sizeof(VkMemoryHeapFlags);
-}
-
-void reservedmarshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceMemoryProperties* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryTypeCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        reservedmarshal_VkMemoryType(vkStream, (VkMemoryType*)(forMarshaling->memoryTypes + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->memoryHeapCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        reservedmarshal_VkMemoryHeap(vkStream, (VkMemoryHeap*)(forMarshaling->memoryHeaps + i), ptr);
-    }
-}
-
 void reservedmarshal_VkDeviceQueueCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkDeviceQueueCreateInfo* forMarshaling,
@@ -746,7 +960,11 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledLayerCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     {
-        uint32_t c = forMarshaling->enabledLayerCount;
+        uint32_t c = 0;
+        if ((forMarshaling) != nullptr)
+        {
+            c = forMarshaling->enabledLayerCount;
+        }
         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
         android::base::Stream::toBe32((uint8_t*)*ptr);
         *ptr += sizeof(uint32_t);
@@ -766,7 +984,11 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->enabledExtensionCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     {
-        uint32_t c = forMarshaling->enabledExtensionCount;
+        uint32_t c = 0;
+        if ((forMarshaling) != nullptr)
+        {
+            c = forMarshaling->enabledExtensionCount;
+        }
         memcpy(*ptr, (uint32_t*)&c, sizeof(uint32_t));
         android::base::Stream::toBe32((uint8_t*)*ptr);
         *ptr += sizeof(uint32_t);
@@ -784,8 +1006,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_10 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
-    memcpy((*ptr), &cgen_var_10, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pEnabledFeatures;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pEnabledFeatures)
@@ -835,11 +1057,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->waitSemaphoreCount)
     {
-        uint8_t* cgen_var_11_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k)
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
-            memcpy(cgen_var_11_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->waitSemaphoreCount;
     }
@@ -849,11 +1074,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->commandBufferCount)
     {
-        uint8_t* cgen_var_12_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->commandBufferCount; ++k)
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkCommandBuffer(forMarshaling->pCommandBuffers[k]);
-            memcpy(cgen_var_12_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->commandBufferCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkCommandBuffer(forMarshaling->pCommandBuffers[k]);
+                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->commandBufferCount;
     }
@@ -861,16 +1089,38 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->signalSemaphoreCount)
     {
-        uint8_t* cgen_var_13_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->signalSemaphoreCount; ++k)
+        uint8_t* cgen_var_2_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSignalSemaphores[k]);
-            memcpy(cgen_var_13_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->signalSemaphoreCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSignalSemaphores[k]);
+                memcpy(cgen_var_2_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->signalSemaphoreCount;
     }
 }
 
+void reservedmarshal_VkMappedMemoryRange(
+    VulkanStreamGuest* vkStream,
+    const VkMappedMemoryRange* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
 void reservedmarshal_VkMemoryAllocateInfo(
     VulkanStreamGuest* vkStream,
     const VkMemoryAllocateInfo* forMarshaling,
@@ -886,25 +1136,6 @@
     *ptr += sizeof(uint32_t);
 }
 
-void reservedmarshal_VkMappedMemoryRange(
-    VulkanStreamGuest* vkStream,
-    const VkMappedMemoryRange* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_14;
-    *&cgen_var_14 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_14, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-}
-
 void reservedmarshal_VkMemoryRequirements(
     VulkanStreamGuest* vkStream,
     const VkMemoryRequirements* forMarshaling,
@@ -919,6 +1150,172 @@
     *ptr += sizeof(uint32_t);
 }
 
+void reservedmarshal_VkSparseMemoryBind(
+    VulkanStreamGuest* vkStream,
+    const VkSparseMemoryBind* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
+    *ptr += sizeof(VkSparseMemoryBindFlags);
+}
+
+void reservedmarshal_VkSparseBufferMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSparseBufferMemoryBindInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
+    {
+        reservedmarshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i), ptr);
+    }
+}
+
+void reservedmarshal_VkSparseImageOpaqueMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageOpaqueMemoryBindInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
+    {
+        reservedmarshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i), ptr);
+    }
+}
+
+void reservedmarshal_VkImageSubresource(
+    VulkanStreamGuest* vkStream,
+    const VkImageSubresource* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
+    *ptr += sizeof(VkImageAspectFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkSparseImageMemoryBind(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageMemoryBind* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    reservedmarshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forMarshaling->subresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->offset), ptr);
+    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent), ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
+    *ptr += sizeof(VkSparseMemoryBindFlags);
+}
+
+void reservedmarshal_VkSparseImageMemoryBindInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageMemoryBindInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
+    {
+        reservedmarshal_VkSparseImageMemoryBind(vkStream, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i), ptr);
+    }
+}
+
+void reservedmarshal_VkBindSparseInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBindSparseInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    if (forMarshaling->waitSemaphoreCount)
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+        }
+        *ptr += 8 * forMarshaling->waitSemaphoreCount;
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i)
+    {
+        reservedmarshal_VkSparseBufferMemoryBindInfo(vkStream, (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i)
+    {
+        reservedmarshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i)
+    {
+        reservedmarshal_VkSparseImageMemoryBindInfo(vkStream, (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    if (forMarshaling->signalSemaphoreCount)
+    {
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t k = 0; k < forMarshaling->signalSemaphoreCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSignalSemaphores[k]);
+                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+        }
+        *ptr += 8 * forMarshaling->signalSemaphoreCount;
+    }
+}
+
 void reservedmarshal_VkSparseImageFormatProperties(
     VulkanStreamGuest* vkStream,
     const VkSparseImageFormatProperties* forMarshaling,
@@ -949,180 +1346,6 @@
     *ptr += sizeof(VkDeviceSize);
 }
 
-void reservedmarshal_VkSparseMemoryBind(
-    VulkanStreamGuest* vkStream,
-    const VkSparseMemoryBind* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->resourceOffset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    uint64_t cgen_var_15;
-    *&cgen_var_15 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_15, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    memcpy(*ptr, (VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
-    *ptr += sizeof(VkSparseMemoryBindFlags);
-}
-
-void reservedmarshal_VkSparseBufferMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    const VkSparseBufferMemoryBindInfo* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    uint64_t cgen_var_16;
-    *&cgen_var_16 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_16, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
-    {
-        reservedmarshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i), ptr);
-    }
-}
-
-void reservedmarshal_VkSparseImageOpaqueMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageOpaqueMemoryBindInfo* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    uint64_t cgen_var_17;
-    *&cgen_var_17 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_17, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
-    {
-        reservedmarshal_VkSparseMemoryBind(vkStream, (const VkSparseMemoryBind*)(forMarshaling->pBinds + i), ptr);
-    }
-}
-
-void reservedmarshal_VkImageSubresource(
-    VulkanStreamGuest* vkStream,
-    const VkImageSubresource* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
-    *ptr += sizeof(VkImageAspectFlags);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->mipLevel, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->arrayLayer, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkOffset3D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset3D* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (int32_t*)&forMarshaling->x, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-    memcpy(*ptr, (int32_t*)&forMarshaling->y, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-    memcpy(*ptr, (int32_t*)&forMarshaling->z, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-}
-
-void reservedmarshal_VkSparseImageMemoryBind(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageMemoryBind* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    reservedmarshal_VkImageSubresource(vkStream, (VkImageSubresource*)(&forMarshaling->subresource), ptr);
-    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->offset), ptr);
-    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent), ptr);
-    uint64_t cgen_var_18;
-    *&cgen_var_18 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_18, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    memcpy(*ptr, (VkSparseMemoryBindFlags*)&forMarshaling->flags, sizeof(VkSparseMemoryBindFlags));
-    *ptr += sizeof(VkSparseMemoryBindFlags);
-}
-
-void reservedmarshal_VkSparseImageMemoryBindInfo(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageMemoryBindInfo* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    uint64_t cgen_var_19;
-    *&cgen_var_19 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_19, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->bindCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindCount; ++i)
-    {
-        reservedmarshal_VkSparseImageMemoryBind(vkStream, (const VkSparseImageMemoryBind*)(forMarshaling->pBinds + i), ptr);
-    }
-}
-
-void reservedmarshal_VkBindSparseInfo(
-    VulkanStreamGuest* vkStream,
-    const VkBindSparseInfo* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    if (forMarshaling->waitSemaphoreCount)
-    {
-        uint8_t* cgen_var_20_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k)
-        {
-            uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
-            memcpy(cgen_var_20_ptr + k * 8, &tmpval, sizeof(uint64_t));
-        }
-        *ptr += 8 * forMarshaling->waitSemaphoreCount;
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->bufferBindCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bufferBindCount; ++i)
-    {
-        reservedmarshal_VkSparseBufferMemoryBindInfo(vkStream, (const VkSparseBufferMemoryBindInfo*)(forMarshaling->pBufferBinds + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->imageOpaqueBindCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageOpaqueBindCount; ++i)
-    {
-        reservedmarshal_VkSparseImageOpaqueMemoryBindInfo(vkStream, (const VkSparseImageOpaqueMemoryBindInfo*)(forMarshaling->pImageOpaqueBinds + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->imageBindCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->imageBindCount; ++i)
-    {
-        reservedmarshal_VkSparseImageMemoryBindInfo(vkStream, (const VkSparseImageMemoryBindInfo*)(forMarshaling->pImageBinds + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    if (forMarshaling->signalSemaphoreCount)
-    {
-        uint8_t* cgen_var_21_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->signalSemaphoreCount; ++k)
-        {
-            uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSignalSemaphores[k]);
-            memcpy(cgen_var_21_ptr + k * 8, &tmpval, sizeof(uint64_t));
-        }
-        *ptr += 8 * forMarshaling->signalSemaphoreCount;
-    }
-}
-
 void reservedmarshal_VkFenceCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkFenceCreateInfo* forMarshaling,
@@ -1201,8 +1424,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_22 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    memcpy((*ptr), &cgen_var_22, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pQueueFamilyIndices)
@@ -1223,9 +1446,9 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkBufferViewCreateFlags*)&forMarshaling->flags, sizeof(VkBufferViewCreateFlags));
     *ptr += sizeof(VkBufferViewCreateFlags);
-    uint64_t cgen_var_23;
-    *&cgen_var_23 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_23, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
     *ptr += sizeof(VkFormat);
@@ -1266,8 +1489,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_24 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    memcpy((*ptr), &cgen_var_24, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pQueueFamilyIndices)
@@ -1313,24 +1536,6 @@
     *ptr += sizeof(VkComponentSwizzle);
 }
 
-void reservedmarshal_VkImageSubresourceRange(
-    VulkanStreamGuest* vkStream,
-    const VkImageSubresourceRange* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
-    *ptr += sizeof(VkImageAspectFlags);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->baseMipLevel, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->levelCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->baseArrayLayer, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
 void reservedmarshal_VkImageViewCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkImageViewCreateInfo* forMarshaling,
@@ -1342,9 +1547,9 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkImageViewCreateFlags*)&forMarshaling->flags, sizeof(VkImageViewCreateFlags));
     *ptr += sizeof(VkImageViewCreateFlags);
-    uint64_t cgen_var_25;
-    *&cgen_var_25 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_25, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkImageViewType*)&forMarshaling->viewType, sizeof(VkImageViewType));
     *ptr += sizeof(VkImageViewType);
@@ -1365,8 +1570,8 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkShaderModuleCreateFlags*)&forMarshaling->flags, sizeof(VkShaderModuleCreateFlags));
     *ptr += sizeof(VkShaderModuleCreateFlags);
-    uint64_t cgen_var_26 = (uint64_t)forMarshaling->codeSize;
-    memcpy((*ptr), &cgen_var_26, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->codeSize;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     memcpy(*ptr, (const uint32_t*)forMarshaling->pCode, (forMarshaling->codeSize / 4) * sizeof(const uint32_t));
@@ -1384,8 +1589,8 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkPipelineCacheCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCacheCreateFlags));
     *ptr += sizeof(VkPipelineCacheCreateFlags);
-    uint64_t cgen_var_27 = (uint64_t)forMarshaling->initialDataSize;
-    memcpy((*ptr), &cgen_var_27, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     memcpy(*ptr, (const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
@@ -1402,8 +1607,8 @@
     *ptr += sizeof(uint32_t);
     memcpy(*ptr, (uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_28 = (uint64_t)forMarshaling->size;
-    memcpy((*ptr), &cgen_var_28, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->size;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
 }
@@ -1420,8 +1625,8 @@
     {
         reservedmarshal_VkSpecializationMapEntry(vkStream, (const VkSpecializationMapEntry*)(forMarshaling->pMapEntries + i), ptr);
     }
-    uint64_t cgen_var_29 = (uint64_t)forMarshaling->dataSize;
-    memcpy((*ptr), &cgen_var_29, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     memcpy(*ptr, (const void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(const uint8_t));
@@ -1441,9 +1646,9 @@
     *ptr += sizeof(VkPipelineShaderStageCreateFlags);
     memcpy(*ptr, (VkShaderStageFlagBits*)&forMarshaling->stage, sizeof(VkShaderStageFlagBits));
     *ptr += sizeof(VkShaderStageFlagBits);
-    uint64_t cgen_var_30;
-    *&cgen_var_30 = get_host_u64_VkShaderModule((*&forMarshaling->module));
-    memcpy(*ptr, (uint64_t*)&cgen_var_30, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkShaderModule((*&forMarshaling->module));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     {
         uint32_t l = forMarshaling->pName ? strlen(forMarshaling->pName): 0;
@@ -1454,8 +1659,8 @@
         *ptr += l;
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_31 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
-    memcpy((*ptr), &cgen_var_31, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSpecializationInfo;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pSpecializationInfo)
@@ -1464,6 +1669,30 @@
     }
 }
 
+void reservedmarshal_VkComputePipelineCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkComputePipelineCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
+    *ptr += sizeof(VkPipelineCreateFlags);
+    reservedmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage), ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
 void reservedmarshal_VkVertexInputBindingDescription(
     VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDescription* forMarshaling,
@@ -1571,40 +1800,6 @@
     *ptr += sizeof(float);
 }
 
-void reservedmarshal_VkOffset2D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset2D* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (int32_t*)&forMarshaling->x, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-    memcpy(*ptr, (int32_t*)&forMarshaling->y, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-}
-
-void reservedmarshal_VkExtent2D(
-    VulkanStreamGuest* vkStream,
-    const VkExtent2D* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkRect2D(
-    VulkanStreamGuest* vkStream,
-    const VkRect2D* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    reservedmarshal_VkOffset2D(vkStream, (VkOffset2D*)(&forMarshaling->offset), ptr);
-    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->extent), ptr);
-}
-
 void reservedmarshal_VkPipelineViewportStateCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkPipelineViewportStateCreateInfo* forMarshaling,
@@ -1619,8 +1814,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_32 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
-    memcpy((*ptr), &cgen_var_32, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewports;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pViewports)
@@ -1633,8 +1828,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->scissorCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_33 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
-    memcpy((*ptr), &cgen_var_33, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pScissors;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pScissors)
@@ -1697,8 +1892,8 @@
     memcpy(*ptr, (float*)&forMarshaling->minSampleShading, sizeof(float));
     *ptr += sizeof(float);
     // WARNING PTR CHECK
-    uint64_t cgen_var_34 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
-    memcpy((*ptr), &cgen_var_34, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pSampleMask;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pSampleMask)
@@ -1839,8 +2034,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
         hasRasterization = (((0 == forMarshaling->pRasterizationState)) ? (0) : (!((*(forMarshaling->pRasterizationState)).rasterizerDiscardEnable)));
-        uint32_t cgen_var_35 = (uint32_t)hasRasterization;
-        memcpy((*ptr), &cgen_var_35, 4);
+        uint32_t cgen_var_0 = (uint32_t)hasRasterization;
+        memcpy((*ptr), &cgen_var_0, 4);
         android::base::Stream::toBe32((uint8_t*)(*ptr));
         *ptr += 4;
     }
@@ -1848,8 +2043,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
         hasTessellation = arrayany(forMarshaling->pStages, 0, forMarshaling->stageCount, [](VkPipelineShaderStageCreateInfo s) { return ((s.stage == VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT) || (s.stage == VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT)); });
-        uint32_t cgen_var_36 = (uint32_t)hasTessellation;
-        memcpy((*ptr), &cgen_var_36, 4);
+        uint32_t cgen_var_0 = (uint32_t)hasTessellation;
+        memcpy((*ptr), &cgen_var_0, 4);
         android::base::Stream::toBe32((uint8_t*)(*ptr));
         *ptr += 4;
     }
@@ -1867,8 +2062,8 @@
     // WARNING PTR CHECK
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
-        uint64_t cgen_var_37 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
-        memcpy((*ptr), &cgen_var_37, 8);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
+        memcpy((*ptr), &cgen_var_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*ptr));
         *ptr += 8;
     }
@@ -1879,8 +2074,8 @@
     // WARNING PTR CHECK
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
-        uint64_t cgen_var_38 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
-        memcpy((*ptr), &cgen_var_38, 8);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInputAssemblyState;
+        memcpy((*ptr), &cgen_var_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*ptr));
         *ptr += 8;
     }
@@ -1889,8 +2084,8 @@
         reservedmarshal_VkPipelineInputAssemblyStateCreateInfo(vkStream, (const VkPipelineInputAssemblyStateCreateInfo*)(forMarshaling->pInputAssemblyState), ptr);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_39 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
-    memcpy((*ptr), &cgen_var_39, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pTessellationState)
@@ -1901,8 +2096,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_40 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
-    memcpy((*ptr), &cgen_var_40, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pViewportState;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pViewportState)
@@ -1915,8 +2110,8 @@
     // WARNING PTR CHECK
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_IGNORED_HANDLES_BIT)
     {
-        uint64_t cgen_var_41 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
-        memcpy((*ptr), &cgen_var_41, 8);
+        uint64_t cgen_var_1_0 = (uint64_t)(uintptr_t)forMarshaling->pRasterizationState;
+        memcpy((*ptr), &cgen_var_1_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*ptr));
         *ptr += 8;
     }
@@ -1925,8 +2120,8 @@
         reservedmarshal_VkPipelineRasterizationStateCreateInfo(vkStream, (const VkPipelineRasterizationStateCreateInfo*)(forMarshaling->pRasterizationState), ptr);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_42 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
-    memcpy((*ptr), &cgen_var_42, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pMultisampleState;
+    memcpy((*ptr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pMultisampleState)
@@ -1937,8 +2132,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_43 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
-    memcpy((*ptr), &cgen_var_43, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilState;
+    memcpy((*ptr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pDepthStencilState)
@@ -1949,8 +2144,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_44 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
-    memcpy((*ptr), &cgen_var_44, 8);
+    uint64_t cgen_var_4 = (uint64_t)(uintptr_t)forMarshaling->pColorBlendState;
+    memcpy((*ptr), &cgen_var_4, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pColorBlendState)
@@ -1961,51 +2156,27 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_45 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
-    memcpy((*ptr), &cgen_var_45, 8);
+    uint64_t cgen_var_5 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
+    memcpy((*ptr), &cgen_var_5, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pDynamicState)
     {
         reservedmarshal_VkPipelineDynamicStateCreateInfo(vkStream, (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState), ptr);
     }
-    uint64_t cgen_var_46;
-    *&cgen_var_46 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_46, 1 * 8);
+    uint64_t cgen_var_6;
+    *&cgen_var_6 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_6, 1 * 8);
     *ptr += 1 * 8;
-    uint64_t cgen_var_47;
-    *&cgen_var_47 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
-    memcpy(*ptr, (uint64_t*)&cgen_var_47, 1 * 8);
+    uint64_t cgen_var_7;
+    *&cgen_var_7 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
+    memcpy(*ptr, (uint64_t*)&cgen_var_7, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_48;
-    *&cgen_var_48 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
-    memcpy(*ptr, (uint64_t*)&cgen_var_48, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-}
-
-void reservedmarshal_VkComputePipelineCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkComputePipelineCreateInfo* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
-    *ptr += sizeof(VkPipelineCreateFlags);
-    reservedmarshal_VkPipelineShaderStageCreateInfo(vkStream, (VkPipelineShaderStageCreateInfo*)(&forMarshaling->stage), ptr);
-    uint64_t cgen_var_49;
-    *&cgen_var_49 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_49, 1 * 8);
-    *ptr += 1 * 8;
-    uint64_t cgen_var_50;
-    *&cgen_var_50 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
-    memcpy(*ptr, (uint64_t*)&cgen_var_50, 1 * 8);
+    uint64_t cgen_var_8;
+    *&cgen_var_8 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
+    memcpy(*ptr, (uint64_t*)&cgen_var_8, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
     *ptr += sizeof(int32_t);
@@ -2040,11 +2211,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->setLayoutCount)
     {
-        uint8_t* cgen_var_51_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->setLayoutCount; ++k)
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkDescriptorSetLayout(forMarshaling->pSetLayouts[k]);
-            memcpy(cgen_var_51_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->setLayoutCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkDescriptorSetLayout(forMarshaling->pSetLayouts[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->setLayoutCount;
     }
@@ -2099,57 +2273,67 @@
     *ptr += sizeof(VkBool32);
 }
 
-void reservedmarshal_VkDescriptorSetLayoutBinding(
+void reservedmarshal_VkCopyDescriptorSet(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBinding* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
-    *ptr += sizeof(VkDescriptorType);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
-    *ptr += sizeof(VkShaderStageFlags);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_52 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
-    memcpy((*ptr), &cgen_var_52, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->pImmutableSamplers)
-    {
-        if (forMarshaling->descriptorCount)
-        {
-            uint8_t* cgen_var_53_ptr = (uint8_t*)(*ptr);
-            for (uint32_t k = 0; k < forMarshaling->descriptorCount; ++k)
-            {
-                uint64_t tmpval = get_host_u64_VkSampler(forMarshaling->pImmutableSamplers[k]);
-                memcpy(cgen_var_53_ptr + k * 8, &tmpval, sizeof(uint64_t));
-            }
-            *ptr += 8 * forMarshaling->descriptorCount;
-        }
-    }
-}
-
-void reservedmarshal_VkDescriptorSetLayoutCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutCreateInfo* forMarshaling,
+    const VkCopyDescriptorSet* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
-    *ptr += sizeof(VkDescriptorSetLayoutCreateFlags);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDescriptorSet((*&forMarshaling->srcSet));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i)
-    {
-        reservedmarshal_VkDescriptorSetLayoutBinding(vkStream, (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i), ptr);
-    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDescriptorSet((*&forMarshaling->dstSet));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkDescriptorBufferInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorBufferInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkDescriptorImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorImageInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSampler((*&forMarshaling->sampler));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImageView((*&forMarshaling->imageView));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
 }
 
 void reservedmarshal_VkDescriptorPoolSize(
@@ -2194,56 +2378,81 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_54;
-    *&cgen_var_54 = get_host_u64_VkDescriptorPool((*&forMarshaling->descriptorPool));
-    memcpy(*ptr, (uint64_t*)&cgen_var_54, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDescriptorPool((*&forMarshaling->descriptorPool));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     if (forMarshaling->descriptorSetCount)
     {
-        uint8_t* cgen_var_55_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->descriptorSetCount; ++k)
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkDescriptorSetLayout(forMarshaling->pSetLayouts[k]);
-            memcpy(cgen_var_55_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->descriptorSetCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkDescriptorSetLayout(forMarshaling->pSetLayouts[k]);
+                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->descriptorSetCount;
     }
 }
 
-void reservedmarshal_VkDescriptorImageInfo(
+void reservedmarshal_VkDescriptorSetLayoutBinding(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorImageInfo* forMarshaling,
+    const VkDescriptorSetLayoutBinding* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
-    uint64_t cgen_var_56;
-    *&cgen_var_56 = get_host_u64_VkSampler((*&forMarshaling->sampler));
-    memcpy(*ptr, (uint64_t*)&cgen_var_56, 1 * 8);
-    *ptr += 1 * 8;
-    uint64_t cgen_var_57;
-    *&cgen_var_57 = get_host_u64_VkImageView((*&forMarshaling->imageView));
-    memcpy(*ptr, (uint64_t*)&cgen_var_57, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkImageLayout*)&forMarshaling->imageLayout, sizeof(VkImageLayout));
-    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->binding, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
+    *ptr += sizeof(VkDescriptorType);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
+    *ptr += sizeof(VkShaderStageFlags);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pImmutableSamplers;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pImmutableSamplers)
+    {
+        if (forMarshaling->descriptorCount)
+        {
+            uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*ptr);
+            if ((forMarshaling) != nullptr)
+            {
+                for (uint32_t k = 0; k < forMarshaling->descriptorCount; ++k)
+                {
+                    uint64_t tmpval = get_host_u64_VkSampler(forMarshaling->pImmutableSamplers[k]);
+                    memcpy(cgen_var_0_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                }
+            }
+            *ptr += 8 * forMarshaling->descriptorCount;
+        }
+    }
 }
 
-void reservedmarshal_VkDescriptorBufferInfo(
+void reservedmarshal_VkDescriptorSetLayoutCreateInfo(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorBufferInfo* forMarshaling,
+    const VkDescriptorSetLayoutCreateInfo* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
-    uint64_t cgen_var_58;
-    *&cgen_var_58 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_58, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->range, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDescriptorSetLayoutCreateFlags*)&forMarshaling->flags, sizeof(VkDescriptorSetLayoutCreateFlags));
+    *ptr += sizeof(VkDescriptorSetLayoutCreateFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->bindingCount; ++i)
+    {
+        reservedmarshal_VkDescriptorSetLayoutBinding(vkStream, (const VkDescriptorSetLayoutBinding*)(forMarshaling->pBindings + i), ptr);
+    }
 }
 
 void reservedmarshal_VkWriteDescriptorSet(
@@ -2255,9 +2464,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_59;
-    *&cgen_var_59 = get_host_u64_VkDescriptorSet((*&forMarshaling->dstSet));
-    memcpy(*ptr, (uint64_t*)&cgen_var_59, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDescriptorSet((*&forMarshaling->dstSet));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
@@ -2268,8 +2477,8 @@
     memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
     *ptr += sizeof(VkDescriptorType);
     // WARNING PTR CHECK
-    uint64_t cgen_var_60 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
-    memcpy((*ptr), &cgen_var_60, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pImageInfo;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pImageInfo)
@@ -2283,8 +2492,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_61 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
-    memcpy((*ptr), &cgen_var_61, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pBufferInfo;
+    memcpy((*ptr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pBufferInfo)
@@ -2298,8 +2507,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_62 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
-    memcpy((*ptr), &cgen_var_62, 8);
+    uint64_t cgen_var_3 = (uint64_t)(uintptr_t)forMarshaling->pTexelBufferView;
+    memcpy((*ptr), &cgen_var_3, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pTexelBufferView)
@@ -2308,11 +2517,14 @@
         {
             if (forMarshaling->descriptorCount)
             {
-                uint8_t* cgen_var_63_ptr = (uint8_t*)(*ptr);
-                for (uint32_t k = 0; k < forMarshaling->descriptorCount; ++k)
+                uint8_t* cgen_var_3_0_ptr = (uint8_t*)(*ptr);
+                if ((forMarshaling) != nullptr)
                 {
-                    uint64_t tmpval = get_host_u64_VkBufferView(forMarshaling->pTexelBufferView[k]);
-                    memcpy(cgen_var_63_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                    for (uint32_t k = 0; k < forMarshaling->descriptorCount; ++k)
+                    {
+                        uint64_t tmpval = get_host_u64_VkBufferView(forMarshaling->pTexelBufferView[k]);
+                        memcpy(cgen_var_3_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                    }
                 }
                 *ptr += 8 * forMarshaling->descriptorCount;
             }
@@ -2320,70 +2532,6 @@
     }
 }
 
-void reservedmarshal_VkCopyDescriptorSet(
-    VulkanStreamGuest* vkStream,
-    const VkCopyDescriptorSet* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_64;
-    *&cgen_var_64 = get_host_u64_VkDescriptorSet((*&forMarshaling->srcSet));
-    memcpy(*ptr, (uint64_t*)&cgen_var_64, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->srcBinding, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->srcArrayElement, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_65;
-    *&cgen_var_65 = get_host_u64_VkDescriptorSet((*&forMarshaling->dstSet));
-    memcpy(*ptr, (uint64_t*)&cgen_var_65, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->dstBinding, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->dstArrayElement, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkFramebufferCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkFramebufferCreateInfo* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkFramebufferCreateFlags*)&forMarshaling->flags, sizeof(VkFramebufferCreateFlags));
-    *ptr += sizeof(VkFramebufferCreateFlags);
-    uint64_t cgen_var_66;
-    *&cgen_var_66 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
-    memcpy(*ptr, (uint64_t*)&cgen_var_66, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    if (forMarshaling->attachmentCount)
-    {
-        uint8_t* cgen_var_67_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->attachmentCount; ++k)
-        {
-            uint64_t tmpval = get_host_u64_VkImageView(forMarshaling->pAttachments[k]);
-            memcpy(cgen_var_67_ptr + k * 8, &tmpval, sizeof(uint64_t));
-        }
-        *ptr += 8 * forMarshaling->attachmentCount;
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
 void reservedmarshal_VkAttachmentDescription(
     VulkanStreamGuest* vkStream,
     const VkAttachmentDescription* forMarshaling,
@@ -2422,6 +2570,44 @@
     *ptr += sizeof(VkImageLayout);
 }
 
+void reservedmarshal_VkFramebufferCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFramebufferCreateFlags*)&forMarshaling->flags, sizeof(VkFramebufferCreateFlags));
+    *ptr += sizeof(VkFramebufferCreateFlags);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    if (forMarshaling->attachmentCount)
+    {
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t k = 0; k < forMarshaling->attachmentCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkImageView(forMarshaling->pAttachments[k]);
+                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+        }
+        *ptr += 8 * forMarshaling->attachmentCount;
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->layers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
 void reservedmarshal_VkSubpassDescription(
     VulkanStreamGuest* vkStream,
     const VkSubpassDescription* forMarshaling,
@@ -2445,8 +2631,8 @@
         reservedmarshal_VkAttachmentReference(vkStream, (const VkAttachmentReference*)(forMarshaling->pColorAttachments + i), ptr);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_68 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
-    memcpy((*ptr), &cgen_var_68, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pResolveAttachments)
@@ -2457,8 +2643,8 @@
         }
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_69 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
-    memcpy((*ptr), &cgen_var_69, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pDepthStencilAttachment)
@@ -2548,9 +2734,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_70;
-    *&cgen_var_70 = get_host_u64_VkCommandPool((*&forMarshaling->commandPool));
-    memcpy(*ptr, (uint64_t*)&cgen_var_70, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkCommandPool((*&forMarshaling->commandPool));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkCommandBufferLevel*)&forMarshaling->level, sizeof(VkCommandBufferLevel));
     *ptr += sizeof(VkCommandBufferLevel);
@@ -2567,15 +2753,15 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_71;
-    *&cgen_var_71 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
-    memcpy(*ptr, (uint64_t*)&cgen_var_71, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->subpass, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_72;
-    *&cgen_var_72 = get_host_u64_VkFramebuffer((*&forMarshaling->framebuffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_72, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFramebuffer((*&forMarshaling->framebuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkBool32*)&forMarshaling->occlusionQueryEnable, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
@@ -2597,8 +2783,8 @@
     memcpy(*ptr, (VkCommandBufferUsageFlags*)&forMarshaling->flags, sizeof(VkCommandBufferUsageFlags));
     *ptr += sizeof(VkCommandBufferUsageFlags);
     // WARNING PTR CHECK
-    uint64_t cgen_var_73 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
-    memcpy((*ptr), &cgen_var_73, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pInheritanceInfo;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pInheritanceInfo)
@@ -2637,37 +2823,6 @@
     *ptr += sizeof(uint32_t);
 }
 
-void reservedmarshal_VkImageCopy(
-    VulkanStreamGuest* vkStream,
-    const VkImageCopy* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
-    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
-    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
-    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
-    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent), ptr);
-}
-
-void reservedmarshal_VkImageBlit(
-    VulkanStreamGuest* vkStream,
-    const VkImageBlit* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i), ptr);
-    }
-    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i), ptr);
-    }
-}
-
 void reservedmarshal_VkBufferImageCopy(
     VulkanStreamGuest* vkStream,
     const VkBufferImageCopy* forMarshaling,
@@ -2742,6 +2897,37 @@
     *ptr += sizeof(uint32_t);
 }
 
+void reservedmarshal_VkImageBlit(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i), ptr);
+    }
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i), ptr);
+    }
+}
+
+void reservedmarshal_VkImageCopy(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
+    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent), ptr);
+}
+
 void reservedmarshal_VkImageResolve(
     VulkanStreamGuest* vkStream,
     const VkImageResolve* forMarshaling,
@@ -2755,76 +2941,6 @@
     reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent), ptr);
 }
 
-void reservedmarshal_VkMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryBarrier* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-}
-
-void reservedmarshal_VkBufferMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkBufferMemoryBarrier* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_74;
-    *&cgen_var_74 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_74, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-}
-
-void reservedmarshal_VkImageMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkImageMemoryBarrier* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-    memcpy(*ptr, (VkImageLayout*)&forMarshaling->oldLayout, sizeof(VkImageLayout));
-    *ptr += sizeof(VkImageLayout);
-    memcpy(*ptr, (VkImageLayout*)&forMarshaling->newLayout, sizeof(VkImageLayout));
-    *ptr += sizeof(VkImageLayout);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->srcQueueFamilyIndex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->dstQueueFamilyIndex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_75;
-    *&cgen_var_75 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_75, 1 * 8);
-    *ptr += 1 * 8;
-    reservedmarshal_VkImageSubresourceRange(vkStream, (VkImageSubresourceRange*)(&forMarshaling->subresourceRange), ptr);
-}
-
 void reservedmarshal_VkRenderPassBeginInfo(
     VulkanStreamGuest* vkStream,
     const VkRenderPassBeginInfo* forMarshaling,
@@ -2834,20 +2950,20 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_76;
-    *&cgen_var_76 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
-    memcpy(*ptr, (uint64_t*)&cgen_var_76, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkRenderPass((*&forMarshaling->renderPass));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
-    uint64_t cgen_var_77;
-    *&cgen_var_77 = get_host_u64_VkFramebuffer((*&forMarshaling->framebuffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_77, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkFramebuffer((*&forMarshaling->framebuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
     reservedmarshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->renderArea), ptr);
     memcpy(*ptr, (uint32_t*)&forMarshaling->clearValueCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_78 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
-    memcpy((*ptr), &cgen_var_78, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pClearValues;
+    memcpy((*ptr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pClearValues)
@@ -2859,76 +2975,6 @@
     }
 }
 
-void reservedmarshal_VkDispatchIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDispatchIndirectCommand* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->x, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->y, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->z, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkDrawIndexedIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndexedIndirectCommand* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->firstIndex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (int32_t*)&forMarshaling->vertexOffset, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkDrawIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndirectCommand* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->firstInstance, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkBaseOutStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseOutStructure* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-}
-
-void reservedmarshal_VkBaseInStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseInStructure* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-}
-
 #endif
 #ifdef VK_VERSION_1_1
 void reservedmarshal_VkPhysicalDeviceSubgroupProperties(
@@ -2959,13 +3005,13 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_79;
-    *&cgen_var_79 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_79, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
-    uint64_t cgen_var_80;
-    *&cgen_var_80 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_80, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
     *ptr += sizeof(VkDeviceSize);
@@ -2980,13 +3026,13 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_81;
-    *&cgen_var_81 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_81, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
-    uint64_t cgen_var_82;
-    *&cgen_var_82 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_82, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
     *ptr += sizeof(VkDeviceSize);
@@ -3035,13 +3081,13 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_83;
-    *&cgen_var_83 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_83, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
-    uint64_t cgen_var_84;
-    *&cgen_var_84 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_84, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -3196,11 +3242,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->physicalDeviceCount)
     {
-        uint8_t* cgen_var_85_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->physicalDeviceCount; ++k)
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkPhysicalDevice(forMarshaling->pPhysicalDevices[k]);
-            memcpy(cgen_var_85_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->physicalDeviceCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkPhysicalDevice(forMarshaling->pPhysicalDevices[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->physicalDeviceCount;
     }
@@ -3215,9 +3264,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_86;
-    *&cgen_var_86 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_86, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -3230,9 +3279,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_87;
-    *&cgen_var_87 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_87, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -3245,9 +3294,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_88;
-    *&cgen_var_88 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_88, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -3526,9 +3575,9 @@
     *ptr += sizeof(uint32_t);
 }
 
-void reservedmarshal_VkPhysicalDeviceVariablePointerFeatures(
+void reservedmarshal_VkPhysicalDeviceVariablePointersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceVariablePointerFeatures* forMarshaling,
+    const VkPhysicalDeviceVariablePointersFeatures* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
@@ -3632,9 +3681,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_89;
-    *&cgen_var_89 = get_host_u64_VkSamplerYcbcrConversion((*&forMarshaling->conversion));
-    memcpy(*ptr, (uint64_t*)&cgen_var_89, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSamplerYcbcrConversion((*&forMarshaling->conversion));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -3704,12 +3753,12 @@
     *ptr += sizeof(uint32_t);
     memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
     *ptr += sizeof(VkDescriptorType);
-    uint64_t cgen_var_90 = (uint64_t)forMarshaling->offset;
-    memcpy((*ptr), &cgen_var_90, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->offset;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
-    uint64_t cgen_var_91 = (uint64_t)forMarshaling->stride;
-    memcpy((*ptr), &cgen_var_91, 8);
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->stride;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
 }
@@ -3733,15 +3782,15 @@
     }
     memcpy(*ptr, (VkDescriptorUpdateTemplateType*)&forMarshaling->templateType, sizeof(VkDescriptorUpdateTemplateType));
     *ptr += sizeof(VkDescriptorUpdateTemplateType);
-    uint64_t cgen_var_92;
-    *&cgen_var_92 = get_host_u64_VkDescriptorSetLayout((*&forMarshaling->descriptorSetLayout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_92, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDescriptorSetLayout((*&forMarshaling->descriptorSetLayout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
     *ptr += sizeof(VkPipelineBindPoint);
-    uint64_t cgen_var_93;
-    *&cgen_var_93 = get_host_u64_VkPipelineLayout((*&forMarshaling->pipelineLayout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_93, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipelineLayout((*&forMarshaling->pipelineLayout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->set, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
@@ -3989,9 +4038,9 @@
     *ptr += sizeof(VkBool32);
 }
 
-void reservedmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
+void reservedmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling,
+    const VkPhysicalDeviceShaderDrawParametersFeatures* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
@@ -4003,6 +4052,1260 @@
 }
 
 #endif
+#ifdef VK_VERSION_1_2
+void reservedmarshal_VkPhysicalDeviceVulkan11Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Features* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer16BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer16BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storageInputOutput16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->multiview, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->multiviewGeometryShader, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->multiviewTessellationShader, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->variablePointersStorageBuffer, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->variablePointers, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->protectedMemory, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->samplerYcbcrConversion, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDrawParameters, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceVulkan11Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Properties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint8_t*)forMarshaling->deviceUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    *ptr += VK_UUID_SIZE * sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)forMarshaling->driverUUID, VK_UUID_SIZE * sizeof(uint8_t));
+    *ptr += VK_UUID_SIZE * sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)forMarshaling->deviceLUID, VK_LUID_SIZE * sizeof(uint8_t));
+    *ptr += VK_LUID_SIZE * sizeof(uint8_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->deviceNodeMask, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->deviceLUIDValid, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->subgroupSupportedStages, sizeof(VkShaderStageFlags));
+    *ptr += sizeof(VkShaderStageFlags);
+    memcpy(*ptr, (VkSubgroupFeatureFlags*)&forMarshaling->subgroupSupportedOperations, sizeof(VkSubgroupFeatureFlags));
+    *ptr += sizeof(VkSubgroupFeatureFlags);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->subgroupQuadOperationsInAllStages, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkPointClippingBehavior*)&forMarshaling->pointClippingBehavior, sizeof(VkPointClippingBehavior));
+    *ptr += sizeof(VkPointClippingBehavior);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMultiviewViewCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMultiviewInstanceIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->protectedNoFault, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerSetDescriptors, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxMemoryAllocationSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkPhysicalDeviceVulkan12Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Features* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->samplerMirrorClampToEdge, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->drawIndirectCount, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->samplerFilterMinmax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderOutputViewportIndex, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderOutputLayer, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->subgroupBroadcastDynamicId, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkConformanceVersion(
+    VulkanStreamGuest* vkStream,
+    const VkConformanceVersion* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint8_t*)&forMarshaling->major, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->minor, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->subminor, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+    memcpy(*ptr, (uint8_t*)&forMarshaling->patch, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+}
+
+void reservedmarshal_VkPhysicalDeviceVulkan12Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Properties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
+    *ptr += sizeof(VkDriverId);
+    memcpy(*ptr, (char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    *ptr += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    *ptr += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
+    reservedmarshal_VkConformanceVersion(vkStream, (VkConformanceVersion*)(&forMarshaling->conformanceVersion), ptr);
+    memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence, sizeof(VkShaderFloatControlsIndependence));
+    *ptr += sizeof(VkShaderFloatControlsIndependence);
+    memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence, sizeof(VkShaderFloatControlsIndependence));
+    *ptr += sizeof(VkShaderFloatControlsIndependence);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes, sizeof(VkResolveModeFlags));
+    *ptr += sizeof(VkResolveModeFlags);
+    memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes, sizeof(VkResolveModeFlags));
+    *ptr += sizeof(VkResolveModeFlags);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->framebufferIntegerColorSampleCounts, sizeof(VkSampleCountFlags));
+    *ptr += sizeof(VkSampleCountFlags);
+}
+
+void reservedmarshal_VkImageFormatListCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageFormatListCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
+    *ptr += forMarshaling->viewFormatCount * sizeof(const VkFormat);
+}
+
+void reservedmarshal_VkAttachmentDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescription2* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
+    *ptr += sizeof(VkAttachmentDescriptionFlags);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
+    *ptr += sizeof(VkSampleCountFlagBits);
+    memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
+    *ptr += sizeof(VkAttachmentLoadOp);
+    memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
+    *ptr += sizeof(VkAttachmentStoreOp);
+    memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
+    *ptr += sizeof(VkAttachmentLoadOp);
+    memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
+    *ptr += sizeof(VkAttachmentStoreOp);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+}
+
+void reservedmarshal_VkAttachmentReference2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReference2* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
+    *ptr += sizeof(VkImageAspectFlags);
+}
+
+void reservedmarshal_VkSubpassDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescription2* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
+    *ptr += sizeof(VkSubpassDescriptionFlags);
+    memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    *ptr += sizeof(VkPipelineBindPoint);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
+    {
+        reservedmarshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pInputAttachments + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
+    {
+        reservedmarshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pColorAttachments + i), ptr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pResolveAttachments)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
+        {
+            reservedmarshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pResolveAttachments + i), ptr);
+        }
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pDepthStencilAttachment)
+    {
+        reservedmarshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pDepthStencilAttachment), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->preserveAttachmentCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkSubpassDependency2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDependency2* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
+    *ptr += sizeof(VkPipelineStageFlags);
+    memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
+    *ptr += sizeof(VkPipelineStageFlags);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
+    *ptr += sizeof(VkAccessFlags);
+    memcpy(*ptr, (VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
+    *ptr += sizeof(VkDependencyFlags);
+    memcpy(*ptr, (int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
+void reservedmarshal_VkRenderPassCreateInfo2(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassCreateInfo2* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
+    *ptr += sizeof(VkRenderPassCreateFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
+    {
+        reservedmarshal_VkAttachmentDescription2(vkStream, (const VkAttachmentDescription2*)(forMarshaling->pAttachments + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
+    {
+        reservedmarshal_VkSubpassDescription2(vkStream, (const VkSubpassDescription2*)(forMarshaling->pSubpasses + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
+    {
+        reservedmarshal_VkSubpassDependency2(vkStream, (const VkSubpassDependency2*)(forMarshaling->pDependencies + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pCorrelatedViewMasks, forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkSubpassBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassBeginInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
+    *ptr += sizeof(VkSubpassContents);
+}
+
+void reservedmarshal_VkSubpassEndInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassEndInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+}
+
+void reservedmarshal_VkPhysicalDevice8BitStorageFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice8BitStorageFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceDriverProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDriverProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDriverId*)&forMarshaling->driverID, sizeof(VkDriverId));
+    *ptr += sizeof(VkDriverId);
+    memcpy(*ptr, (char*)forMarshaling->driverName, VK_MAX_DRIVER_NAME_SIZE * sizeof(char));
+    *ptr += VK_MAX_DRIVER_NAME_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->driverInfo, VK_MAX_DRIVER_INFO_SIZE * sizeof(char));
+    *ptr += VK_MAX_DRIVER_INFO_SIZE * sizeof(char);
+    reservedmarshal_VkConformanceVersion(vkStream, (VkConformanceVersion*)(&forMarshaling->conformanceVersion), ptr);
+}
+
+void reservedmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicInt64Features* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferInt64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedInt64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceFloatControlsProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFloatControlsProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->denormBehaviorIndependence, sizeof(VkShaderFloatControlsIndependence));
+    *ptr += sizeof(VkShaderFloatControlsIndependence);
+    memcpy(*ptr, (VkShaderFloatControlsIndependence*)&forMarshaling->roundingModeIndependence, sizeof(VkShaderFloatControlsIndependence));
+    *ptr += sizeof(VkShaderFloatControlsIndependence);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSignedZeroInfNanPreserveFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormPreserveFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDenormFlushToZeroFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTEFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat16, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderRoundingModeRTZFloat64, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pBindingFlags;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pBindingFlags)
+    {
+        memcpy(*ptr, (const VkDescriptorBindingFlags*)forMarshaling->pBindingFlags, forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags));
+        *ptr += forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlags);
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pDescriptorCounts, forMarshaling->descriptorSetCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->descriptorSetCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkSubpassDescriptionDepthStencilResolve(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescriptionDepthStencilResolve* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkResolveModeFlagBits*)&forMarshaling->depthResolveMode, sizeof(VkResolveModeFlagBits));
+    *ptr += sizeof(VkResolveModeFlagBits);
+    memcpy(*ptr, (VkResolveModeFlagBits*)&forMarshaling->stencilResolveMode, sizeof(VkResolveModeFlagBits));
+    *ptr += sizeof(VkResolveModeFlagBits);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilResolveAttachment;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pDepthStencilResolveAttachment)
+    {
+        reservedmarshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pDepthStencilResolveAttachment), ptr);
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthStencilResolveProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedDepthResolveModes, sizeof(VkResolveModeFlags));
+    *ptr += sizeof(VkResolveModeFlags);
+    memcpy(*ptr, (VkResolveModeFlags*)&forMarshaling->supportedStencilResolveModes, sizeof(VkResolveModeFlags));
+    *ptr += sizeof(VkResolveModeFlags);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolveNone, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->independentResolve, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->scalarBlockLayout, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkImageStencilUsageCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageStencilUsageCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->stencilUsage, sizeof(VkImageUsageFlags));
+    *ptr += sizeof(VkImageUsageFlags);
+}
+
+void reservedmarshal_VkSamplerReductionModeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerReductionModeCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSamplerReductionMode*)&forMarshaling->reductionMode, sizeof(VkSamplerReductionMode));
+    *ptr += sizeof(VkSamplerReductionMode);
+}
+
+void reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModel, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelDeviceScope, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vulkanMemoryModelAvailabilityVisibilityChains, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->imagelessFramebuffer, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkFramebufferAttachmentImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentImageInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkImageCreateFlags*)&forMarshaling->flags, sizeof(VkImageCreateFlags));
+    *ptr += sizeof(VkImageCreateFlags);
+    memcpy(*ptr, (VkImageUsageFlags*)&forMarshaling->usage, sizeof(VkImageUsageFlags));
+    *ptr += sizeof(VkImageUsageFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->layerCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
+    *ptr += forMarshaling->viewFormatCount * sizeof(const VkFormat);
+}
+
+void reservedmarshal_VkFramebufferAttachmentsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentsCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentImageInfoCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentImageInfoCount; ++i)
+    {
+        reservedmarshal_VkFramebufferAttachmentImageInfo(vkStream, (const VkFramebufferAttachmentImageInfo*)(forMarshaling->pAttachmentImageInfos + i), ptr);
+    }
+}
+
+void reservedmarshal_VkRenderPassAttachmentBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassAttachmentBeginInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    if (forMarshaling->attachmentCount)
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t k = 0; k < forMarshaling->attachmentCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkImageView(forMarshaling->pAttachments[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+        }
+        *ptr += 8 * forMarshaling->attachmentCount;
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->uniformBufferStandardLayout, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSubgroupExtendedTypes, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->separateDepthStencilLayouts, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkAttachmentReferenceStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReferenceStencilLayout* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->stencilLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+}
+
+void reservedmarshal_VkAttachmentDescriptionStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescriptionStencilLayout* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->stencilInitialLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->stencilFinalLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+}
+
+void reservedmarshal_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceHostQueryResetFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->hostQueryReset, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->timelineSemaphore, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxTimelineSemaphoreValueDifference, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkSemaphoreTypeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreTypeCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSemaphoreType*)&forMarshaling->semaphoreType, sizeof(VkSemaphoreType));
+    *ptr += sizeof(VkSemaphoreType);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->initialValue, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkTimelineSemaphoreSubmitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkTimelineSemaphoreSubmitInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreValueCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pWaitSemaphoreValues)
+    {
+        memcpy(*ptr, (const uint64_t*)forMarshaling->pWaitSemaphoreValues, forMarshaling->waitSemaphoreValueCount * sizeof(const uint64_t));
+        *ptr += forMarshaling->waitSemaphoreValueCount * sizeof(const uint64_t);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreValueCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pSignalSemaphoreValues)
+    {
+        memcpy(*ptr, (const uint64_t*)forMarshaling->pSignalSemaphoreValues, forMarshaling->signalSemaphoreValueCount * sizeof(const uint64_t));
+        *ptr += forMarshaling->signalSemaphoreValueCount * sizeof(const uint64_t);
+    }
+}
+
+void reservedmarshal_VkSemaphoreWaitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreWaitInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSemaphoreWaitFlags*)&forMarshaling->flags, sizeof(VkSemaphoreWaitFlags));
+    *ptr += sizeof(VkSemaphoreWaitFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->semaphoreCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    if (forMarshaling->semaphoreCount)
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t k = 0; k < forMarshaling->semaphoreCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pSemaphores[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+        }
+        *ptr += 8 * forMarshaling->semaphoreCount;
+    }
+    memcpy(*ptr, (const uint64_t*)forMarshaling->pValues, forMarshaling->semaphoreCount * sizeof(const uint64_t));
+    *ptr += forMarshaling->semaphoreCount * sizeof(const uint64_t);
+}
+
+void reservedmarshal_VkSemaphoreSignalInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreSignalInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint64_t*)&forMarshaling->value, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkBufferDeviceAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+}
+
+void reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferOpaqueCaptureAddressCreateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->opaqueCaptureAddress, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+}
+
+#endif
 #ifdef VK_KHR_surface
 void reservedmarshal_VkSurfaceCapabilitiesKHR(
     VulkanStreamGuest* vkStream,
@@ -4054,9 +5357,9 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkSwapchainCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkSwapchainCreateFlagsKHR));
     *ptr += sizeof(VkSwapchainCreateFlagsKHR);
-    uint64_t cgen_var_94;
-    *&cgen_var_94 = get_host_u64_VkSurfaceKHR((*&forMarshaling->surface));
-    memcpy(*ptr, (uint64_t*)&cgen_var_94, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSurfaceKHR((*&forMarshaling->surface));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->minImageCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
@@ -4074,8 +5377,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_95 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
-    memcpy((*ptr), &cgen_var_95, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pQueueFamilyIndices)
@@ -4091,9 +5394,9 @@
     *ptr += sizeof(VkPresentModeKHR);
     memcpy(*ptr, (VkBool32*)&forMarshaling->clipped, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
-    uint64_t cgen_var_96;
-    *&cgen_var_96 = get_host_u64_VkSwapchainKHR((*&forMarshaling->oldSwapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_96, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkSwapchainKHR((*&forMarshaling->oldSwapchain));
+    memcpy(*ptr, (uint64_t*)&cgen_var_2, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -4110,11 +5413,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->waitSemaphoreCount)
     {
-        uint8_t* cgen_var_97_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k)
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
-            memcpy(cgen_var_97_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->waitSemaphoreCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkSemaphore(forMarshaling->pWaitSemaphores[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->waitSemaphoreCount;
     }
@@ -4122,19 +5428,22 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->swapchainCount)
     {
-        uint8_t* cgen_var_98_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->swapchainCount; ++k)
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkSwapchainKHR(forMarshaling->pSwapchains[k]);
-            memcpy(cgen_var_98_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->swapchainCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkSwapchainKHR(forMarshaling->pSwapchains[k]);
+                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->swapchainCount;
     }
     memcpy(*ptr, (const uint32_t*)forMarshaling->pImageIndices, forMarshaling->swapchainCount * sizeof(const uint32_t));
     *ptr += forMarshaling->swapchainCount * sizeof(const uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_99 = (uint64_t)(uintptr_t)forMarshaling->pResults;
-    memcpy((*ptr), &cgen_var_99, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pResults;
+    memcpy((*ptr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pResults)
@@ -4153,9 +5462,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_100;
-    *&cgen_var_100 = get_host_u64_VkSwapchainKHR((*&forMarshaling->swapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_100, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSwapchainKHR((*&forMarshaling->swapchain));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -4168,9 +5477,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_101;
-    *&cgen_var_101 = get_host_u64_VkSwapchainKHR((*&forMarshaling->swapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_101, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSwapchainKHR((*&forMarshaling->swapchain));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->imageIndex, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
@@ -4185,19 +5494,19 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_102;
-    *&cgen_var_102 = get_host_u64_VkSwapchainKHR((*&forMarshaling->swapchain));
-    memcpy(*ptr, (uint64_t*)&cgen_var_102, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSwapchainKHR((*&forMarshaling->swapchain));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
     *ptr += sizeof(uint64_t);
-    uint64_t cgen_var_103;
-    *&cgen_var_103 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
-    memcpy(*ptr, (uint64_t*)&cgen_var_103, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
-    uint64_t cgen_var_104;
-    *&cgen_var_104 = get_host_u64_VkFence((*&forMarshaling->fence));
-    memcpy(*ptr, (uint64_t*)&cgen_var_104, 1 * 8);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkFence((*&forMarshaling->fence));
+    memcpy(*ptr, (uint64_t*)&cgen_var_2, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->deviceMask, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
@@ -4250,34 +5559,6 @@
 
 #endif
 #ifdef VK_KHR_display
-void reservedmarshal_VkDisplayPropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayPropertiesKHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    uint64_t cgen_var_105;
-    *&cgen_var_105 = get_host_u64_VkDisplayKHR((*&forMarshaling->display));
-    memcpy(*ptr, (uint64_t*)&cgen_var_105, 1 * 8);
-    *ptr += 1 * 8;
-    {
-        uint32_t l = forMarshaling->displayName ? strlen(forMarshaling->displayName): 0;
-        memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
-        android::base::Stream::toBe32((uint8_t*)*ptr);
-        *ptr += sizeof(uint32_t);
-        memcpy(*ptr, (char*)forMarshaling->displayName, l);
-        *ptr += l;
-    }
-    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalDimensions), ptr);
-    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalResolution), ptr);
-    memcpy(*ptr, (VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
-    *ptr += sizeof(VkSurfaceTransformFlagsKHR);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->planeReorderPossible, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->persistentContent, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-}
-
 void reservedmarshal_VkDisplayModeParametersKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeParametersKHR* forMarshaling,
@@ -4289,19 +5570,6 @@
     *ptr += sizeof(uint32_t);
 }
 
-void reservedmarshal_VkDisplayModePropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayModePropertiesKHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    uint64_t cgen_var_106;
-    *&cgen_var_106 = get_host_u64_VkDisplayModeKHR((*&forMarshaling->displayMode));
-    memcpy(*ptr, (uint64_t*)&cgen_var_106, 1 * 8);
-    *ptr += 1 * 8;
-    reservedmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters), ptr);
-}
-
 void reservedmarshal_VkDisplayModeCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeCreateInfoKHR* forMarshaling,
@@ -4316,6 +5584,19 @@
     reservedmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters), ptr);
 }
 
+void reservedmarshal_VkDisplayModePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayModePropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDisplayModeKHR((*&forMarshaling->displayMode));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    reservedmarshal_VkDisplayModeParametersKHR(vkStream, (VkDisplayModeParametersKHR*)(&forMarshaling->parameters), ptr);
+}
+
 void reservedmarshal_VkDisplayPlaneCapabilitiesKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilitiesKHR* forMarshaling,
@@ -4340,14 +5621,42 @@
     uint8_t** ptr)
 {
     (void)vkStream;
-    uint64_t cgen_var_107;
-    *&cgen_var_107 = get_host_u64_VkDisplayKHR((*&forMarshaling->currentDisplay));
-    memcpy(*ptr, (uint64_t*)&cgen_var_107, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDisplayKHR((*&forMarshaling->currentDisplay));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->currentStackIndex, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
 }
 
+void reservedmarshal_VkDisplayPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayPropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDisplayKHR((*&forMarshaling->display));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    {
+        uint32_t l = forMarshaling->displayName ? strlen(forMarshaling->displayName): 0;
+        memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
+        android::base::Stream::toBe32((uint8_t*)*ptr);
+        *ptr += sizeof(uint32_t);
+        memcpy(*ptr, (char*)forMarshaling->displayName, l);
+        *ptr += l;
+    }
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalDimensions), ptr);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->physicalResolution), ptr);
+    memcpy(*ptr, (VkSurfaceTransformFlagsKHR*)&forMarshaling->supportedTransforms, sizeof(VkSurfaceTransformFlagsKHR));
+    *ptr += sizeof(VkSurfaceTransformFlagsKHR);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->planeReorderPossible, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->persistentContent, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
 void reservedmarshal_VkDisplaySurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplaySurfaceCreateInfoKHR* forMarshaling,
@@ -4359,9 +5668,9 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkDisplaySurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkDisplaySurfaceCreateFlagsKHR));
     *ptr += sizeof(VkDisplaySurfaceCreateFlagsKHR);
-    uint64_t cgen_var_108;
-    *&cgen_var_108 = get_host_u64_VkDisplayModeKHR((*&forMarshaling->displayMode));
-    memcpy(*ptr, (uint64_t*)&cgen_var_108, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDisplayModeKHR((*&forMarshaling->displayMode));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
@@ -4407,8 +5716,8 @@
     memcpy(*ptr, (VkXlibSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXlibSurfaceCreateFlagsKHR));
     *ptr += sizeof(VkXlibSurfaceCreateFlagsKHR);
     // WARNING PTR CHECK
-    uint64_t cgen_var_109 = (uint64_t)(uintptr_t)forMarshaling->dpy;
-    memcpy((*ptr), &cgen_var_109, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->dpy;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->dpy)
@@ -4434,8 +5743,8 @@
     memcpy(*ptr, (VkXcbSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkXcbSurfaceCreateFlagsKHR));
     *ptr += sizeof(VkXcbSurfaceCreateFlagsKHR);
     // WARNING PTR CHECK
-    uint64_t cgen_var_110 = (uint64_t)(uintptr_t)forMarshaling->connection;
-    memcpy((*ptr), &cgen_var_110, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->connection;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->connection)
@@ -4461,8 +5770,8 @@
     memcpy(*ptr, (VkWaylandSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkWaylandSurfaceCreateFlagsKHR));
     *ptr += sizeof(VkWaylandSurfaceCreateFlagsKHR);
     // WARNING PTR CHECK
-    uint64_t cgen_var_111 = (uint64_t)(uintptr_t)forMarshaling->display;
-    memcpy((*ptr), &cgen_var_111, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->display;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->display)
@@ -4471,8 +5780,8 @@
         *ptr += sizeof(wl_display);
     }
     // WARNING PTR CHECK
-    uint64_t cgen_var_112 = (uint64_t)(uintptr_t)forMarshaling->surface;
-    memcpy((*ptr), &cgen_var_112, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->surface;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->surface)
@@ -4483,41 +5792,6 @@
 }
 
 #endif
-#ifdef VK_KHR_mir_surface
-void reservedmarshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkMirSurfaceCreateInfoKHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkMirSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkMirSurfaceCreateFlagsKHR));
-    *ptr += sizeof(VkMirSurfaceCreateFlagsKHR);
-    // WARNING PTR CHECK
-    uint64_t cgen_var_113 = (uint64_t)(uintptr_t)forMarshaling->connection;
-    memcpy((*ptr), &cgen_var_113, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->connection)
-    {
-        memcpy(*ptr, (MirConnection*)forMarshaling->connection, sizeof(MirConnection));
-        *ptr += sizeof(MirConnection);
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_114 = (uint64_t)(uintptr_t)forMarshaling->mirSurface;
-    memcpy((*ptr), &cgen_var_114, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->mirSurface)
-    {
-        memcpy(*ptr, (MirSurface*)forMarshaling->mirSurface, sizeof(MirSurface));
-        *ptr += sizeof(MirSurface);
-    }
-}
-
-#endif
 #ifdef VK_KHR_android_surface
 void reservedmarshal_VkAndroidSurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -4531,8 +5805,8 @@
     memcpy(*ptr, (VkAndroidSurfaceCreateFlagsKHR*)&forMarshaling->flags, sizeof(VkAndroidSurfaceCreateFlagsKHR));
     *ptr += sizeof(VkAndroidSurfaceCreateFlagsKHR);
     // WARNING PTR CHECK
-    uint64_t cgen_var_115 = (uint64_t)(uintptr_t)forMarshaling->window;
-    memcpy((*ptr), &cgen_var_115, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->window;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->window)
@@ -4608,8 +5882,8 @@
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_116 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    memcpy((*ptr), &cgen_var_116, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pAttributes)
@@ -4645,9 +5919,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_117;
-    *&cgen_var_117 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_117, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
@@ -4692,9 +5966,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_118;
-    *&cgen_var_118 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_118, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
@@ -4715,11 +5989,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->acquireCount)
     {
-        uint8_t* cgen_var_119_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->acquireCount; ++k)
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pAcquireSyncs[k]);
-            memcpy(cgen_var_119_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->acquireCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pAcquireSyncs[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->acquireCount;
     }
@@ -4731,11 +6008,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->releaseCount)
     {
-        uint8_t* cgen_var_120_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->releaseCount; ++k)
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pReleaseSyncs[k]);
-            memcpy(cgen_var_120_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->releaseCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pReleaseSyncs[k]);
+                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->releaseCount;
     }
@@ -4758,9 +6038,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_121;
-    *&cgen_var_121 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
-    memcpy(*ptr, (uint64_t*)&cgen_var_121, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
     *ptr += sizeof(VkSemaphoreImportFlags);
@@ -4782,8 +6062,8 @@
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_122 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    memcpy((*ptr), &cgen_var_122, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pAttributes)
@@ -4809,8 +6089,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->waitSemaphoreValuesCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_123 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
-    memcpy((*ptr), &cgen_var_123, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pWaitSemaphoreValues;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pWaitSemaphoreValues)
@@ -4821,8 +6101,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->signalSemaphoreValuesCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_124 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
-    memcpy((*ptr), &cgen_var_124, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pSignalSemaphoreValues;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pSignalSemaphoreValues)
@@ -4841,9 +6121,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_125;
-    *&cgen_var_125 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
-    memcpy(*ptr, (uint64_t*)&cgen_var_125, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
@@ -4860,9 +6140,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_126;
-    *&cgen_var_126 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
-    memcpy(*ptr, (uint64_t*)&cgen_var_126, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkSemaphoreImportFlags*)&forMarshaling->flags, sizeof(VkSemaphoreImportFlags));
     *ptr += sizeof(VkSemaphoreImportFlags);
@@ -4881,9 +6161,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_127;
-    *&cgen_var_127 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
-    memcpy(*ptr, (uint64_t*)&cgen_var_127, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSemaphore((*&forMarshaling->semaphore));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkExternalSemaphoreHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalSemaphoreHandleTypeFlagBits));
     *ptr += sizeof(VkExternalSemaphoreHandleTypeFlagBits);
@@ -4905,6 +6185,8 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -4929,8 +6211,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->rectangleCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_128 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
-    memcpy((*ptr), &cgen_var_128, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRectangles;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pRectangles)
@@ -4954,8 +6236,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_129 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
-    memcpy((*ptr), &cgen_var_129, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pRegions;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pRegions)
@@ -4970,193 +6252,9 @@
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
-void reservedmarshal_VkAttachmentDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentDescription2KHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkAttachmentDescriptionFlags*)&forMarshaling->flags, sizeof(VkAttachmentDescriptionFlags));
-    *ptr += sizeof(VkAttachmentDescriptionFlags);
-    memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
-    *ptr += sizeof(VkFormat);
-    memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->samples, sizeof(VkSampleCountFlagBits));
-    *ptr += sizeof(VkSampleCountFlagBits);
-    memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->loadOp, sizeof(VkAttachmentLoadOp));
-    *ptr += sizeof(VkAttachmentLoadOp);
-    memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->storeOp, sizeof(VkAttachmentStoreOp));
-    *ptr += sizeof(VkAttachmentStoreOp);
-    memcpy(*ptr, (VkAttachmentLoadOp*)&forMarshaling->stencilLoadOp, sizeof(VkAttachmentLoadOp));
-    *ptr += sizeof(VkAttachmentLoadOp);
-    memcpy(*ptr, (VkAttachmentStoreOp*)&forMarshaling->stencilStoreOp, sizeof(VkAttachmentStoreOp));
-    *ptr += sizeof(VkAttachmentStoreOp);
-    memcpy(*ptr, (VkImageLayout*)&forMarshaling->initialLayout, sizeof(VkImageLayout));
-    *ptr += sizeof(VkImageLayout);
-    memcpy(*ptr, (VkImageLayout*)&forMarshaling->finalLayout, sizeof(VkImageLayout));
-    *ptr += sizeof(VkImageLayout);
-}
-
-void reservedmarshal_VkAttachmentReference2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentReference2KHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->attachment, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkImageLayout*)&forMarshaling->layout, sizeof(VkImageLayout));
-    *ptr += sizeof(VkImageLayout);
-    memcpy(*ptr, (VkImageAspectFlags*)&forMarshaling->aspectMask, sizeof(VkImageAspectFlags));
-    *ptr += sizeof(VkImageAspectFlags);
-}
-
-void reservedmarshal_VkSubpassDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDescription2KHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkSubpassDescriptionFlags*)&forMarshaling->flags, sizeof(VkSubpassDescriptionFlags));
-    *ptr += sizeof(VkSubpassDescriptionFlags);
-    memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    *ptr += sizeof(VkPipelineBindPoint);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->viewMask, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->inputAttachmentCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->inputAttachmentCount; ++i)
-    {
-        reservedmarshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pInputAttachments + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->colorAttachmentCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
-    {
-        reservedmarshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pColorAttachments + i), ptr);
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_130 = (uint64_t)(uintptr_t)forMarshaling->pResolveAttachments;
-    memcpy((*ptr), &cgen_var_130, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->pResolveAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)forMarshaling->colorAttachmentCount; ++i)
-        {
-            reservedmarshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pResolveAttachments + i), ptr);
-        }
-    }
-    // WARNING PTR CHECK
-    uint64_t cgen_var_131 = (uint64_t)(uintptr_t)forMarshaling->pDepthStencilAttachment;
-    memcpy((*ptr), &cgen_var_131, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    if (forMarshaling->pDepthStencilAttachment)
-    {
-        reservedmarshal_VkAttachmentReference2KHR(vkStream, (const VkAttachmentReference2KHR*)(forMarshaling->pDepthStencilAttachment), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->preserveAttachmentCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const uint32_t*)forMarshaling->pPreserveAttachments, forMarshaling->preserveAttachmentCount * sizeof(const uint32_t));
-    *ptr += forMarshaling->preserveAttachmentCount * sizeof(const uint32_t);
-}
-
-void reservedmarshal_VkSubpassDependency2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDependency2KHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->srcSubpass, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->dstSubpass, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->srcStageMask, sizeof(VkPipelineStageFlags));
-    *ptr += sizeof(VkPipelineStageFlags);
-    memcpy(*ptr, (VkPipelineStageFlags*)&forMarshaling->dstStageMask, sizeof(VkPipelineStageFlags));
-    *ptr += sizeof(VkPipelineStageFlags);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->srcAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-    memcpy(*ptr, (VkAccessFlags*)&forMarshaling->dstAccessMask, sizeof(VkAccessFlags));
-    *ptr += sizeof(VkAccessFlags);
-    memcpy(*ptr, (VkDependencyFlags*)&forMarshaling->dependencyFlags, sizeof(VkDependencyFlags));
-    *ptr += sizeof(VkDependencyFlags);
-    memcpy(*ptr, (int32_t*)&forMarshaling->viewOffset, sizeof(int32_t));
-    *ptr += sizeof(int32_t);
-}
-
-void reservedmarshal_VkRenderPassCreateInfo2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkRenderPassCreateInfo2KHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkRenderPassCreateFlags*)&forMarshaling->flags, sizeof(VkRenderPassCreateFlags));
-    *ptr += sizeof(VkRenderPassCreateFlags);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->attachmentCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->attachmentCount; ++i)
-    {
-        reservedmarshal_VkAttachmentDescription2KHR(vkStream, (const VkAttachmentDescription2KHR*)(forMarshaling->pAttachments + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->subpassCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->subpassCount; ++i)
-    {
-        reservedmarshal_VkSubpassDescription2KHR(vkStream, (const VkSubpassDescription2KHR*)(forMarshaling->pSubpasses + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->dependencyCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->dependencyCount; ++i)
-    {
-        reservedmarshal_VkSubpassDependency2KHR(vkStream, (const VkSubpassDependency2KHR*)(forMarshaling->pDependencies + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->correlatedViewMaskCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const uint32_t*)forMarshaling->pCorrelatedViewMasks, forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t));
-    *ptr += forMarshaling->correlatedViewMaskCount * sizeof(const uint32_t);
-}
-
-void reservedmarshal_VkSubpassBeginInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassBeginInfoKHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkSubpassContents*)&forMarshaling->contents, sizeof(VkSubpassContents));
-    *ptr += sizeof(VkSubpassContents);
-}
-
-void reservedmarshal_VkSubpassEndInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassEndInfoKHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-}
-
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void reservedmarshal_VkSharedPresentSurfaceCapabilitiesKHR(
@@ -5187,9 +6285,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_132;
-    *&cgen_var_132 = get_host_u64_VkFence((*&forMarshaling->fence));
-    memcpy(*ptr, (uint64_t*)&cgen_var_132, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkFence((*&forMarshaling->fence));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
     *ptr += sizeof(VkFenceImportFlags);
@@ -5211,8 +6309,8 @@
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_133 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    memcpy((*ptr), &cgen_var_133, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pAttributes)
@@ -5235,9 +6333,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_134;
-    *&cgen_var_134 = get_host_u64_VkFence((*&forMarshaling->fence));
-    memcpy(*ptr, (uint64_t*)&cgen_var_134, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkFence((*&forMarshaling->fence));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
     *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
@@ -5254,9 +6352,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_135;
-    *&cgen_var_135 = get_host_u64_VkFence((*&forMarshaling->fence));
-    memcpy(*ptr, (uint64_t*)&cgen_var_135, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkFence((*&forMarshaling->fence));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkFenceImportFlags*)&forMarshaling->flags, sizeof(VkFenceImportFlags));
     *ptr += sizeof(VkFenceImportFlags);
@@ -5275,15 +6373,138 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_136;
-    *&cgen_var_136 = get_host_u64_VkFence((*&forMarshaling->fence));
-    memcpy(*ptr, (uint64_t*)&cgen_var_136, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkFence((*&forMarshaling->fence));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkExternalFenceHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalFenceHandleTypeFlagBits));
     *ptr += sizeof(VkExternalFenceHandleTypeFlagBits);
 }
 
 #endif
+#ifdef VK_KHR_performance_query
+void reservedmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->performanceCounterQueryPools, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->performanceCounterMultipleQueryPools, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->allowCommandBufferQueryCopies, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPerformanceCounterKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPerformanceCounterUnitKHR*)&forMarshaling->unit, sizeof(VkPerformanceCounterUnitKHR));
+    *ptr += sizeof(VkPerformanceCounterUnitKHR);
+    memcpy(*ptr, (VkPerformanceCounterScopeKHR*)&forMarshaling->scope, sizeof(VkPerformanceCounterScopeKHR));
+    *ptr += sizeof(VkPerformanceCounterScopeKHR);
+    memcpy(*ptr, (VkPerformanceCounterStorageKHR*)&forMarshaling->storage, sizeof(VkPerformanceCounterStorageKHR));
+    *ptr += sizeof(VkPerformanceCounterStorageKHR);
+    memcpy(*ptr, (uint8_t*)forMarshaling->uuid, VK_UUID_SIZE * sizeof(uint8_t));
+    *ptr += VK_UUID_SIZE * sizeof(uint8_t);
+}
+
+void reservedmarshal_VkPerformanceCounterDescriptionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterDescriptionKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPerformanceCounterDescriptionFlagsKHR*)&forMarshaling->flags, sizeof(VkPerformanceCounterDescriptionFlagsKHR));
+    *ptr += sizeof(VkPerformanceCounterDescriptionFlagsKHR);
+    memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->category, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+}
+
+void reservedmarshal_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->counterIndexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pCounterIndices, forMarshaling->counterIndexCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->counterIndexCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkPerformanceCounterResultKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterResultKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (int32_t*)&forMarshaling->int32, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
+void reservedmarshal_VkAcquireProfilingLockInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAcquireProfilingLockInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAcquireProfilingLockFlagsKHR*)&forMarshaling->flags, sizeof(VkAcquireProfilingLockFlagsKHR));
+    *ptr += sizeof(VkAcquireProfilingLockFlagsKHR);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->timeout, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkPerformanceQuerySubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceQuerySubmitInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->counterPassIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -5296,9 +6517,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_137;
-    *&cgen_var_137 = get_host_u64_VkSurfaceKHR((*&forMarshaling->surface));
-    memcpy(*ptr, (uint64_t*)&cgen_var_137, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkSurfaceKHR((*&forMarshaling->surface));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -5375,9 +6596,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_138;
-    *&cgen_var_138 = get_host_u64_VkDisplayModeKHR((*&forMarshaling->mode));
-    memcpy(*ptr, (uint64_t*)&cgen_var_138, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDisplayModeKHR((*&forMarshaling->mode));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (uint32_t*)&forMarshaling->planeIndex, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
@@ -5405,63 +6626,660 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void reservedmarshal_VkImageFormatListCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkImageFormatListCreateInfoKHR* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->viewFormatCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const VkFormat*)forMarshaling->pViewFormats, forMarshaling->viewFormatCount * sizeof(const VkFormat));
-    *ptr += forMarshaling->viewFormatCount * sizeof(const VkFormat);
-}
-
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
 #endif
 #ifdef VK_KHR_bind_memory2
 #endif
+#ifdef VK_KHR_portability_subset
+void reservedmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->constantAlphaColorBlendFactors, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->events, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->imageViewFormatReinterpretation, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->imageViewFormatSwizzle, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->imageView2DOn3DImage, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->multisampleArrayImage, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->mutableComparisonSamplers, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->pointPolygons, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->samplerMipLodBias, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->separateStencilMaskRef, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampleRateInterpolationFunctions, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->tessellationIsolines, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->tessellationPointMode, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->triangleFans, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vertexAttributeAccessBeyondStride, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minVertexInputBindingStrideAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
 #ifdef VK_KHR_maintenance3
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
-void reservedmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+void reservedmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling,
+    const VkPhysicalDeviceShaderClockFeaturesKHR* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->storageBuffer8BitAccess, sizeof(VkBool32));
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSubgroupClock, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->uniformAndStorageBuffer8BitAccess, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->storagePushConstant8, sizeof(VkBool32));
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDeviceClock, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
 }
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void reservedmarshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling,
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderFloat16, sizeof(VkBool32));
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderTerminateInvocation, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInt8, sizeof(VkBool32));
+}
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void reservedmarshal_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkFragmentShadingRateAttachmentInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkAttachmentReference2(vkStream, (const VkAttachmentReference2*)(forMarshaling->pFragmentShadingRateAttachment), ptr);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->shadingRateAttachmentTexelSize), ptr);
+}
+
+void reservedmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->fragmentSize), ptr);
+    memcpy(*ptr, (VkFragmentShadingRateCombinerOpKHR*)forMarshaling->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+    *ptr += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+}
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->pipelineFragmentShadingRate, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->primitiveFragmentShadingRate, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->attachmentFragmentShadingRate, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->minFragmentShadingRateAttachmentTexelSize), ptr);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxFragmentShadingRateAttachmentTexelSize), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxFragmentShadingRateAttachmentTexelSizeAspectRatio, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->primitiveFragmentShadingRateWithMultipleViewports, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->layeredShadingRateAttachments, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateNonTrivialCombinerOps, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->maxFragmentSize), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxFragmentSizeAspectRatio, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxFragmentShadingRateCoverageSamples, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->maxFragmentShadingRateRasterizationSamples, sizeof(VkSampleCountFlagBits));
+    *ptr += sizeof(VkSampleCountFlagBits);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateWithShaderDepthStencilWrites, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateWithSampleMask, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateWithShaderSampleMask, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateWithConservativeRasterization, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateWithFragmentShaderInterlock, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateWithCustomSampleLocations, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateStrictMultiplyCombiner, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->sampleCounts, sizeof(VkSampleCountFlags));
+    *ptr += sizeof(VkSampleCountFlags);
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->fragmentSize), ptr);
+}
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void reservedmarshal_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceProtectedCapabilitiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->supportsProtected, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void reservedmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->pipelineExecutableInfo, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipeline((*&forMarshaling->pipeline));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+}
+
+void reservedmarshal_VkPipelineExecutablePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutablePropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->stages, sizeof(VkShaderStageFlags));
+    *ptr += sizeof(VkShaderStageFlags);
+    memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->subgroupSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPipelineExecutableInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipeline((*&forMarshaling->pipeline));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->executableIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPipelineExecutableStatisticValueKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticValueKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkBool32*)&forMarshaling->b32, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineExecutableStatisticKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (VkPipelineExecutableStatisticFormatKHR*)&forMarshaling->format, sizeof(VkPipelineExecutableStatisticFormatKHR));
+    *ptr += sizeof(VkPipelineExecutableStatisticFormatKHR);
+    reservedmarshal_VkPipelineExecutableStatisticValueKHR(vkStream, (VkPipelineExecutableStatisticValueKHR*)(&forMarshaling->value), ptr);
+}
+
+void reservedmarshal_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInternalRepresentationKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->isText, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->dataSize;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pData;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pData)
+    {
+        memcpy(*ptr, (void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(uint8_t));
+        *ptr += forMarshaling->dataSize * sizeof(uint8_t);
+    }
+}
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void reservedmarshal_VkPipelineLibraryCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineLibraryCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->libraryCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    if (forMarshaling->libraryCount)
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t k = 0; k < forMarshaling->libraryCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkPipeline(forMarshaling->pLibraries[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+        }
+        *ptr += 8 * forMarshaling->libraryCount;
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void reservedmarshal_VkBufferCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferCopy2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->srcOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->dstOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkCopyBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferInfo2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->srcBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->dstBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+    {
+        reservedmarshal_VkBufferCopy2KHR(vkStream, (const VkBufferCopy2KHR*)(forMarshaling->pRegions + i), ptr);
+    }
+}
+
+void reservedmarshal_VkImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
+    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent), ptr);
+}
+
+void reservedmarshal_VkCopyImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageInfo2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+    {
+        reservedmarshal_VkImageCopy2KHR(vkStream, (const VkImageCopy2KHR*)(forMarshaling->pRegions + i), ptr);
+    }
+}
+
+void reservedmarshal_VkBufferImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferImageCopy2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->bufferOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bufferRowLength, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->bufferImageHeight, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->imageSubresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->imageOffset), ptr);
+    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->imageExtent), ptr);
+}
+
+void reservedmarshal_VkCopyBufferToImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferToImageInfo2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->srcBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+    {
+        reservedmarshal_VkBufferImageCopy2KHR(vkStream, (const VkBufferImageCopy2KHR*)(forMarshaling->pRegions + i), ptr);
+    }
+}
+
+void reservedmarshal_VkCopyImageToBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageToBufferInfo2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->dstBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+    {
+        reservedmarshal_VkBufferImageCopy2KHR(vkStream, (const VkBufferImageCopy2KHR*)(forMarshaling->pRegions + i), ptr);
+    }
+}
+
+void reservedmarshal_VkImageBlit2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->srcOffsets + i), ptr);
+    }
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(forMarshaling->dstOffsets + i), ptr);
+    }
+}
+
+void reservedmarshal_VkBlitImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBlitImageInfo2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+    {
+        reservedmarshal_VkImageBlit2KHR(vkStream, (const VkImageBlit2KHR*)(forMarshaling->pRegions + i), ptr);
+    }
+    memcpy(*ptr, (VkFilter*)&forMarshaling->filter, sizeof(VkFilter));
+    *ptr += sizeof(VkFilter);
+}
+
+void reservedmarshal_VkImageResolve2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageResolve2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->srcSubresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->srcOffset), ptr);
+    reservedmarshal_VkImageSubresourceLayers(vkStream, (VkImageSubresourceLayers*)(&forMarshaling->dstSubresource), ptr);
+    reservedmarshal_VkOffset3D(vkStream, (VkOffset3D*)(&forMarshaling->dstOffset), ptr);
+    reservedmarshal_VkExtent3D(vkStream, (VkExtent3D*)(&forMarshaling->extent), ptr);
+}
+
+void reservedmarshal_VkResolveImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkResolveImageInfo2KHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->srcImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->srcImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkImage((*&forMarshaling->dstImage));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkImageLayout*)&forMarshaling->dstImageLayout, sizeof(VkImageLayout));
+    *ptr += sizeof(VkImageLayout);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->regionCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->regionCount; ++i)
+    {
+        reservedmarshal_VkImageResolve2KHR(vkStream, (const VkImageResolve2KHR*)(forMarshaling->pRegions + i), ptr);
+    }
 }
 
 #endif
@@ -5476,8 +7294,8 @@
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_139 = (uint64_t)(uintptr_t)forMarshaling->handle;
-    memcpy((*ptr), &cgen_var_139, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->handle;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->handle)
@@ -5510,13 +7328,13 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkDebugReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDebugReportFlagsEXT));
     *ptr += sizeof(VkDebugReportFlagsEXT);
-    uint64_t cgen_var_140 = (uint64_t)forMarshaling->pfnCallback;
-    memcpy((*ptr), &cgen_var_140, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnCallback;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_141 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    memcpy((*ptr), &cgen_var_141, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pUserData)
@@ -5591,8 +7409,8 @@
     *ptr += sizeof(uint64_t);
     memcpy(*ptr, (uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
     *ptr += sizeof(uint64_t);
-    uint64_t cgen_var_142 = (uint64_t)forMarshaling->tagSize;
-    memcpy((*ptr), &cgen_var_142, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->tagSize;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     memcpy(*ptr, (const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
@@ -5659,17 +7477,118 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_143;
-    *&cgen_var_143 = get_host_u64_VkImage((*&forMarshaling->image));
-    memcpy(*ptr, (uint64_t*)&cgen_var_143, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImage((*&forMarshaling->image));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
-    uint64_t cgen_var_144;
-    *&cgen_var_144 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_144, 1 * 8);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
     *ptr += 1 * 8;
 }
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void reservedmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedback, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->geometryStreams, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackStreams, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackBuffers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->maxTransformFeedbackBufferSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackStreamDataSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTransformFeedbackBufferDataStride, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackQueries, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackStreamsLinesTriangles, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackRasterizationStreamSelect, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->transformFeedbackDraw, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineRasterizationStateStreamCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT));
+    *ptr += sizeof(VkPipelineRasterizationStateStreamCreateFlagsEXT);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->rasterizationStream, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void reservedmarshal_VkImageViewHandleInfoNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewHandleInfoNVX* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkImageView((*&forMarshaling->imageView));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDescriptorType*)&forMarshaling->descriptorType, sizeof(VkDescriptorType));
+    *ptr += sizeof(VkDescriptorType);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkSampler((*&forMarshaling->sampler));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+}
+
+void reservedmarshal_VkImageViewAddressPropertiesNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewAddressPropertiesNVX* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -5706,12 +7625,12 @@
     *ptr += sizeof(uint32_t);
     memcpy(*ptr, (uint32_t*)&forMarshaling->ldsSizePerLocalWorkGroup, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_145 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
-    memcpy((*ptr), &cgen_var_145, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->ldsUsageSizeInBytes;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
-    uint64_t cgen_var_146 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
-    memcpy((*ptr), &cgen_var_146, 8);
+    uint64_t cgen_var_1 = (uint64_t)forMarshaling->scratchMemUsageInBytes;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
 }
@@ -5740,6 +7659,38 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void reservedmarshal_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanStreamGuest* vkStream,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkStreamDescriptorSurfaceCreateFlagsGGP*)&forMarshaling->flags, sizeof(VkStreamDescriptorSurfaceCreateFlagsGGP));
+    *ptr += sizeof(VkStreamDescriptorSurfaceCreateFlagsGGP);
+    memcpy(*ptr, (GgpStreamDescriptor*)&forMarshaling->streamDescriptor, sizeof(GgpStreamDescriptor));
+    *ptr += sizeof(GgpStreamDescriptor);
+}
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void reservedmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->cornerSampledImage, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -5813,8 +7764,8 @@
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     // WARNING PTR CHECK
-    uint64_t cgen_var_147 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
-    memcpy((*ptr), &cgen_var_147, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAttributes;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pAttributes)
@@ -5841,11 +7792,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->acquireCount)
     {
-        uint8_t* cgen_var_148_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->acquireCount; ++k)
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pAcquireSyncs[k]);
-            memcpy(cgen_var_148_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->acquireCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pAcquireSyncs[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->acquireCount;
     }
@@ -5857,11 +7811,14 @@
     *ptr += sizeof(uint32_t);
     if (forMarshaling->releaseCount)
     {
-        uint8_t* cgen_var_149_ptr = (uint8_t*)(*ptr);
-        for (uint32_t k = 0; k < forMarshaling->releaseCount; ++k)
+        uint8_t* cgen_var_1_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
         {
-            uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pReleaseSyncs[k]);
-            memcpy(cgen_var_149_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            for (uint32_t k = 0; k < forMarshaling->releaseCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkDeviceMemory(forMarshaling->pReleaseSyncs[k]);
+                memcpy(cgen_var_1_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
         }
         *ptr += 8 * forMarshaling->releaseCount;
     }
@@ -5900,8 +7857,8 @@
     memcpy(*ptr, (VkViSurfaceCreateFlagsNN*)&forMarshaling->flags, sizeof(VkViSurfaceCreateFlagsNN));
     *ptr += sizeof(VkViSurfaceCreateFlagsNN);
     // WARNING PTR CHECK
-    uint64_t cgen_var_150 = (uint64_t)(uintptr_t)forMarshaling->window;
-    memcpy((*ptr), &cgen_var_150, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->window;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->window)
@@ -5916,6 +7873,49 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void reservedmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->textureCompressionASTC_HDR, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void reservedmarshal_VkImageViewASTCDecodeModeEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewASTCDecodeModeEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->decodeMode, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+}
+
+void reservedmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->decodeModeSharedExponent, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void reservedmarshal_VkConditionalRenderingBeginInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -5926,9 +7926,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_151;
-    *&cgen_var_151 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_151, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
     memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
     *ptr += sizeof(VkDeviceSize);
@@ -5965,288 +7965,6 @@
 }
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void reservedmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->computeBindingPointSupport, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-}
-
-void reservedmarshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxIndirectCommandsLayoutTokenCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxObjectEntryCounts, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->minSequenceCountBufferOffsetAlignment, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->minSequenceIndexBufferOffsetAlignment, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->minCommandsTokenBufferOffsetAlignment, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkIndirectCommandsTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsTokenNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    *ptr += sizeof(VkIndirectCommandsTokenTypeNVX);
-    uint64_t cgen_var_152;
-    *&cgen_var_152 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_152, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-}
-
-void reservedmarshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutTokenNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkIndirectCommandsTokenTypeNVX*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNVX));
-    *ptr += sizeof(VkIndirectCommandsTokenTypeNVX);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->bindingUnit, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->dynamicCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->divisor, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
-    *ptr += sizeof(VkPipelineBindPoint);
-    memcpy(*ptr, (VkIndirectCommandsLayoutUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNVX));
-    *ptr += sizeof(VkIndirectCommandsLayoutUsageFlagsNVX);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->tokenCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->tokenCount; ++i)
-    {
-        reservedmarshal_VkIndirectCommandsLayoutTokenNVX(vkStream, (const VkIndirectCommandsLayoutTokenNVX*)(forMarshaling->pTokens + i), ptr);
-    }
-}
-
-void reservedmarshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdProcessCommandsInfoNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_153;
-    *&cgen_var_153 = get_host_u64_VkObjectTableNVX((*&forMarshaling->objectTable));
-    memcpy(*ptr, (uint64_t*)&cgen_var_153, 1 * 8);
-    *ptr += 1 * 8;
-    uint64_t cgen_var_154;
-    *&cgen_var_154 = get_host_u64_VkIndirectCommandsLayoutNVX((*&forMarshaling->indirectCommandsLayout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_154, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->indirectCommandsTokenCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    for (uint32_t i = 0; i < (uint32_t)forMarshaling->indirectCommandsTokenCount; ++i)
-    {
-        reservedmarshal_VkIndirectCommandsTokenNVX(vkStream, (const VkIndirectCommandsTokenNVX*)(forMarshaling->pIndirectCommandsTokens + i), ptr);
-    }
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    uint64_t cgen_var_155;
-    *&cgen_var_155 = get_host_u64_VkCommandBuffer((*&forMarshaling->targetCommandBuffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_155, 1 * 8);
-    *ptr += 1 * 8;
-    uint64_t cgen_var_156;
-    *&cgen_var_156 = get_host_u64_VkBuffer((*&forMarshaling->sequencesCountBuffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_156, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-    uint64_t cgen_var_157;
-    *&cgen_var_157 = get_host_u64_VkBuffer((*&forMarshaling->sequencesIndexBuffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_157, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
-    *ptr += sizeof(VkDeviceSize);
-}
-
-void reservedmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_158;
-    *&cgen_var_158 = get_host_u64_VkObjectTableNVX((*&forMarshaling->objectTable));
-    memcpy(*ptr, (uint64_t*)&cgen_var_158, 1 * 8);
-    *ptr += 1 * 8;
-    uint64_t cgen_var_159;
-    *&cgen_var_159 = get_host_u64_VkIndirectCommandsLayoutNVX((*&forMarshaling->indirectCommandsLayout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_159, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkObjectTableCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableCreateInfoNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const VkObjectEntryTypeNVX*)forMarshaling->pObjectEntryTypes, forMarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX));
-    *ptr += forMarshaling->objectCount * sizeof(const VkObjectEntryTypeNVX);
-    memcpy(*ptr, (const uint32_t*)forMarshaling->pObjectEntryCounts, forMarshaling->objectCount * sizeof(const uint32_t));
-    *ptr += forMarshaling->objectCount * sizeof(const uint32_t);
-    memcpy(*ptr, (const VkObjectEntryUsageFlagsNVX*)forMarshaling->pObjectEntryUsageFlags, forMarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX));
-    *ptr += forMarshaling->objectCount * sizeof(const VkObjectEntryUsageFlagsNVX);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxUniformBuffersPerDescriptor, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxStorageBuffersPerDescriptor, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxStorageImagesPerDescriptor, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSampledImagesPerDescriptor, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPipelineLayouts, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-}
-
-void reservedmarshal_VkObjectTableEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableEntryNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    *ptr += sizeof(VkObjectEntryTypeNVX);
-    memcpy(*ptr, (VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    *ptr += sizeof(VkObjectEntryUsageFlagsNVX);
-}
-
-void reservedmarshal_VkObjectTablePipelineEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePipelineEntryNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    *ptr += sizeof(VkObjectEntryTypeNVX);
-    memcpy(*ptr, (VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    *ptr += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_160;
-    *&cgen_var_160 = get_host_u64_VkPipeline((*&forMarshaling->pipeline));
-    memcpy(*ptr, (uint64_t*)&cgen_var_160, 1 * 8);
-    *ptr += 1 * 8;
-}
-
-void reservedmarshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableDescriptorSetEntryNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    *ptr += sizeof(VkObjectEntryTypeNVX);
-    memcpy(*ptr, (VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    *ptr += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_161;
-    *&cgen_var_161 = get_host_u64_VkPipelineLayout((*&forMarshaling->pipelineLayout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_161, 1 * 8);
-    *ptr += 1 * 8;
-    uint64_t cgen_var_162;
-    *&cgen_var_162 = get_host_u64_VkDescriptorSet((*&forMarshaling->descriptorSet));
-    memcpy(*ptr, (uint64_t*)&cgen_var_162, 1 * 8);
-    *ptr += 1 * 8;
-}
-
-void reservedmarshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableVertexBufferEntryNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    *ptr += sizeof(VkObjectEntryTypeNVX);
-    memcpy(*ptr, (VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    *ptr += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_163;
-    *&cgen_var_163 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_163, 1 * 8);
-    *ptr += 1 * 8;
-}
-
-void reservedmarshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableIndexBufferEntryNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    *ptr += sizeof(VkObjectEntryTypeNVX);
-    memcpy(*ptr, (VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    *ptr += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_164;
-    *&cgen_var_164 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
-    memcpy(*ptr, (uint64_t*)&cgen_var_164, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
-    *ptr += sizeof(VkIndexType);
-}
-
-void reservedmarshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePushConstantEntryNVX* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkObjectEntryTypeNVX*)&forMarshaling->type, sizeof(VkObjectEntryTypeNVX));
-    *ptr += sizeof(VkObjectEntryTypeNVX);
-    memcpy(*ptr, (VkObjectEntryUsageFlagsNVX*)&forMarshaling->flags, sizeof(VkObjectEntryUsageFlagsNVX));
-    *ptr += sizeof(VkObjectEntryUsageFlagsNVX);
-    uint64_t cgen_var_165;
-    *&cgen_var_165 = get_host_u64_VkPipelineLayout((*&forMarshaling->pipelineLayout));
-    memcpy(*ptr, (uint64_t*)&cgen_var_165, 1 * 8);
-    *ptr += 1 * 8;
-    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->stageFlags, sizeof(VkShaderStageFlags));
-    *ptr += sizeof(VkShaderStageFlags);
-}
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void reservedmarshal_VkViewportWScalingNV(
     VulkanStreamGuest* vkStream,
@@ -6274,8 +7992,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_166 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
-    memcpy((*ptr), &cgen_var_166, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportWScalings;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pViewportWScalings)
@@ -6431,8 +8149,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->swapchainCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_167 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
-    memcpy((*ptr), &cgen_var_167, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pTimes;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pTimes)
@@ -6497,8 +8215,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_168 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
-    memcpy((*ptr), &cgen_var_168, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pViewportSwizzles;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pViewportSwizzles)
@@ -6541,8 +8259,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->discardRectangleCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_169 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
-    memcpy((*ptr), &cgen_var_169, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDiscardRectangles;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pDiscardRectangles)
@@ -6603,6 +8321,36 @@
 }
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void reservedmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineRasterizationDepthClipStateCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT));
+    *ptr += sizeof(VkPipelineRasterizationDepthClipStateCreateFlagsEXT);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->depthClipEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -6655,8 +8403,8 @@
     memcpy(*ptr, (VkIOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkIOSSurfaceCreateFlagsMVK));
     *ptr += sizeof(VkIOSSurfaceCreateFlagsMVK);
     // WARNING PTR CHECK
-    uint64_t cgen_var_170 = (uint64_t)(uintptr_t)forMarshaling->pView;
-    memcpy((*ptr), &cgen_var_170, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pView;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pView)
@@ -6680,8 +8428,8 @@
     memcpy(*ptr, (VkMacOSSurfaceCreateFlagsMVK*)&forMarshaling->flags, sizeof(VkMacOSSurfaceCreateFlagsMVK));
     *ptr += sizeof(VkMacOSSurfaceCreateFlagsMVK);
     // WARNING PTR CHECK
-    uint64_t cgen_var_171 = (uint64_t)(uintptr_t)forMarshaling->pView;
-    memcpy((*ptr), &cgen_var_171, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pView;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pView)
@@ -6692,11 +8440,34 @@
 }
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
+void reservedmarshal_VkDebugUtilsLabelEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsLabelEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    {
+        uint32_t l = forMarshaling->pLabelName ? strlen(forMarshaling->pLabelName): 0;
+        memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
+        android::base::Stream::toBe32((uint8_t*)*ptr);
+        *ptr += sizeof(uint32_t);
+        memcpy(*ptr, (char*)forMarshaling->pLabelName, l);
+        *ptr += l;
+    }
+    memcpy(*ptr, (float*)forMarshaling->color, 4 * sizeof(float));
+    *ptr += 4 * sizeof(float);
+}
+
 void reservedmarshal_VkDebugUtilsObjectNameInfoEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsObjectNameInfoEXT* forMarshaling,
@@ -6713,8 +8484,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_172 = (uint64_t)(uintptr_t)forMarshaling->pObjectName;
-        memcpy((*ptr), &cgen_var_172, 8);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pObjectName;
+        memcpy((*ptr), &cgen_var_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*ptr));
         *ptr += 8;
         if (forMarshaling->pObjectName)
@@ -6742,50 +8513,6 @@
     }
 }
 
-void reservedmarshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsObjectTagInfoEXT* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
-    *ptr += sizeof(VkObjectType);
-    memcpy(*ptr, (uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
-    *ptr += sizeof(uint64_t);
-    memcpy(*ptr, (uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
-    *ptr += sizeof(uint64_t);
-    uint64_t cgen_var_173 = (uint64_t)forMarshaling->tagSize;
-    memcpy((*ptr), &cgen_var_173, 8);
-    android::base::Stream::toBe64((uint8_t*)(*ptr));
-    *ptr += 8;
-    memcpy(*ptr, (const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
-    *ptr += forMarshaling->tagSize * sizeof(const uint8_t);
-}
-
-void reservedmarshal_VkDebugUtilsLabelEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsLabelEXT* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    {
-        uint32_t l = forMarshaling->pLabelName ? strlen(forMarshaling->pLabelName): 0;
-        memcpy(*ptr, (uint32_t*)&l, sizeof(uint32_t));
-        android::base::Stream::toBe32((uint8_t*)*ptr);
-        *ptr += sizeof(uint32_t);
-        memcpy(*ptr, (char*)forMarshaling->pLabelName, l);
-        *ptr += l;
-    }
-    memcpy(*ptr, (float*)forMarshaling->color, 4 * sizeof(float));
-    *ptr += 4 * sizeof(float);
-}
-
 void reservedmarshal_VkDebugUtilsMessengerCallbackDataEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling,
@@ -6800,8 +8527,8 @@
     if (vkStream->getFeatureBits() & VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT)
     {
         // WARNING PTR CHECK
-        uint64_t cgen_var_174 = (uint64_t)(uintptr_t)forMarshaling->pMessageIdName;
-        memcpy((*ptr), &cgen_var_174, 8);
+        uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pMessageIdName;
+        memcpy((*ptr), &cgen_var_0, 8);
         android::base::Stream::toBe64((uint8_t*)(*ptr));
         *ptr += 8;
         if (forMarshaling->pMessageIdName)
@@ -6840,8 +8567,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->queueLabelCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_175 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
-    memcpy((*ptr), &cgen_var_175, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueLabels;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pQueueLabels)
@@ -6854,8 +8581,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->cmdBufLabelCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_176 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
-    memcpy((*ptr), &cgen_var_176, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pCmdBufLabels;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pCmdBufLabels)
@@ -6868,8 +8595,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->objectCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_177 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
-    memcpy((*ptr), &cgen_var_177, 8);
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pObjects;
+    memcpy((*ptr), &cgen_var_2, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pObjects)
@@ -6896,13 +8623,13 @@
     *ptr += sizeof(VkDebugUtilsMessageSeverityFlagsEXT);
     memcpy(*ptr, (VkDebugUtilsMessageTypeFlagsEXT*)&forMarshaling->messageType, sizeof(VkDebugUtilsMessageTypeFlagsEXT));
     *ptr += sizeof(VkDebugUtilsMessageTypeFlagsEXT);
-    uint64_t cgen_var_178 = (uint64_t)forMarshaling->pfnUserCallback;
-    memcpy((*ptr), &cgen_var_178, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     // WARNING PTR CHECK
-    uint64_t cgen_var_179 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
-    memcpy((*ptr), &cgen_var_179, 8);
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    memcpy((*ptr), &cgen_var_1, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pUserData)
@@ -6912,6 +8639,29 @@
     }
 }
 
+void reservedmarshal_VkDebugUtilsObjectTagInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsObjectTagInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
+    *ptr += sizeof(VkObjectType);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->tagName, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->tagSize;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    memcpy(*ptr, (const void*)forMarshaling->pTag, forMarshaling->tagSize * sizeof(const uint8_t));
+    *ptr += forMarshaling->tagSize * sizeof(const uint8_t);
+}
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void reservedmarshal_VkAndroidHardwareBufferUsageANDROID(
@@ -6990,9 +8740,9 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_180;
-    *&cgen_var_180 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
-    memcpy(*ptr, (uint64_t*)&cgen_var_180, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
@@ -7011,34 +8761,6 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void reservedmarshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkSamplerReductionModeCreateInfoEXT* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkSamplerReductionModeEXT*)&forMarshaling->reductionMode, sizeof(VkSamplerReductionModeEXT));
-    *ptr += sizeof(VkSamplerReductionModeEXT);
-}
-
-void reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling,
-    uint8_t** ptr)
-{
-    (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxSingleComponentFormats, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->filterMinmaxImageComponentMapping, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-}
-
 #endif
 #ifdef VK_AMD_gpu_shader_int16
 #endif
@@ -7046,6 +8768,72 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void reservedmarshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->inlineUniformBlock, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingInlineUniformBlockUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxInlineUniformBlockSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorInlineUniformBlocks, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetInlineUniformBlocks, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInlineUniformBlocks, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->dataSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const void*)forMarshaling->pData, forMarshaling->dataSize * sizeof(const uint8_t));
+    *ptr += forMarshaling->dataSize * sizeof(const uint8_t);
+}
+
+void reservedmarshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxInlineUniformBlockBindings, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -7266,8 +9054,8 @@
     memcpy(*ptr, (uint32_t*)&forMarshaling->coverageModulationTableCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
     // WARNING PTR CHECK
-    uint64_t cgen_var_181 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
-    memcpy((*ptr), &cgen_var_181, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCoverageModulationTable;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pCoverageModulationTable)
@@ -7280,8 +9068,153 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void reservedmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderSMCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderWarpsPerSM, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSMBuiltins, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void reservedmarshal_VkDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkFormatFeatureFlags*)&forMarshaling->drmFormatModifierTilingFeatures, sizeof(VkFormatFeatureFlags));
+    *ptr += sizeof(VkFormatFeatureFlags);
+}
+
+void reservedmarshal_VkDrmFormatModifierPropertiesListEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesListEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pDrmFormatModifierProperties;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pDrmFormatModifierProperties)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierCount; ++i)
+        {
+            reservedmarshal_VkDrmFormatModifierPropertiesEXT(vkStream, (VkDrmFormatModifierPropertiesEXT*)(forMarshaling->pDrmFormatModifierProperties + i), ptr);
+        }
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (VkSharingMode*)&forMarshaling->sharingMode, sizeof(VkSharingMode));
+    *ptr += sizeof(VkSharingMode);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->queueFamilyIndexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pQueueFamilyIndices;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pQueueFamilyIndices)
+    {
+        memcpy(*ptr, (const uint32_t*)forMarshaling->pQueueFamilyIndices, forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t));
+        *ptr += forMarshaling->queueFamilyIndexCount * sizeof(const uint32_t);
+    }
+}
+
+void reservedmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint64_t*)forMarshaling->pDrmFormatModifiers, forMarshaling->drmFormatModifierCount * sizeof(const uint64_t));
+    *ptr += forMarshaling->drmFormatModifierCount * sizeof(const uint64_t);
+}
+
+void reservedmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->drmFormatModifierPlaneCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->drmFormatModifierPlaneCount; ++i)
+    {
+        reservedmarshal_VkSubresourceLayout(vkStream, (const VkSubresourceLayout*)(forMarshaling->pPlaneLayouts + i), ptr);
+    }
+}
+
+void reservedmarshal_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->drmFormatModifier, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+#endif
 #ifdef VK_EXT_validation_cache
 void reservedmarshal_VkValidationCacheCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -7294,8 +9227,8 @@
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
     memcpy(*ptr, (VkValidationCacheCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkValidationCacheCreateFlagsEXT));
     *ptr += sizeof(VkValidationCacheCreateFlagsEXT);
-    uint64_t cgen_var_182 = (uint64_t)forMarshaling->initialDataSize;
-    memcpy((*ptr), &cgen_var_182, 8);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->initialDataSize;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     memcpy(*ptr, (const void*)forMarshaling->pInitialData, forMarshaling->initialDataSize * sizeof(const uint8_t));
@@ -7311,167 +9244,539 @@
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    uint64_t cgen_var_183;
-    *&cgen_var_183 = get_host_u64_VkValidationCacheEXT((*&forMarshaling->validationCache));
-    memcpy(*ptr, (uint64_t*)&cgen_var_183, 1 * 8);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkValidationCacheEXT((*&forMarshaling->validationCache));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
     *ptr += 1 * 8;
 }
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+#endif
+#ifdef VK_EXT_shader_viewport_index_layer
+#endif
+#ifdef VK_NV_shading_rate_image
+void reservedmarshal_VkShadingRatePaletteNV(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling,
+    const VkShadingRatePaletteNV* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->bindingCount, sizeof(uint32_t));
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shadingRatePaletteEntryCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const VkDescriptorBindingFlagsEXT*)forMarshaling->pBindingFlags, forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT));
-    *ptr += forMarshaling->bindingCount * sizeof(const VkDescriptorBindingFlagsEXT);
+    memcpy(*ptr, (const VkShadingRatePaletteEntryNV*)forMarshaling->pShadingRatePaletteEntries, forMarshaling->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV));
+    *ptr += forMarshaling->shadingRatePaletteEntryCount * sizeof(const VkShadingRatePaletteEntryNV);
 }
 
-void reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void reservedmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayDynamicIndexing, sizeof(VkBool32));
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shadingRateImageEnable, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
+    memcpy(*ptr, (uint32_t*)&forMarshaling->viewportCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pShadingRatePalettes;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pShadingRatePalettes)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->viewportCount; ++i)
+        {
+            reservedmarshal_VkShadingRatePaletteNV(vkStream, (const VkShadingRatePaletteNV*)(forMarshaling->pShadingRatePalettes + i), ptr);
+        }
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shadingRateImage, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayDynamicIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageTexelBufferArrayNonUniformIndexing, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformBufferUpdateAfterBind, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingSampledImageUpdateAfterBind, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageImageUpdateAfterBind, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageBufferUpdateAfterBind, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUniformTexelBufferUpdateAfterBind, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingStorageTexelBufferUpdateAfterBind, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingUpdateUnusedWhilePending, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingPartiallyBound, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingVariableDescriptorCount, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->runtimeDescriptorArray, sizeof(VkBool32));
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shadingRateCoarseSampleOrder, sizeof(VkBool32));
     *ptr += sizeof(VkBool32);
 }
 
-void reservedmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void reservedmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling,
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxUpdateAfterBindDescriptorsInAllPools, sizeof(uint32_t));
+    reservedmarshal_VkExtent2D(vkStream, (VkExtent2D*)(&forMarshaling->shadingRateTexelSize), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shadingRatePaletteSize, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderUniformBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSampledImageArrayNonUniformIndexingNative, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageBufferArrayNonUniformIndexingNative, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderStorageImageArrayNonUniformIndexingNative, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderInputAttachmentArrayNonUniformIndexingNative, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccessUpdateAfterBind, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (VkBool32*)&forMarshaling->quadDivergentImplicitLod, sizeof(VkBool32));
-    *ptr += sizeof(VkBool32);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSamplers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindUniformBuffers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageBuffers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindSampledImages, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindStorageImages, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindInputAttachments, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageUpdateAfterBindResources, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSamplers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindUniformBuffersDynamic, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffers, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageBuffersDynamic, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindSampledImages, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindStorageImages, sizeof(uint32_t));
-    *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindInputAttachments, sizeof(uint32_t));
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shadingRateMaxCoarseSamples, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
 }
 
-void reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void reservedmarshal_VkCoarseSampleLocationNV(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling,
+    const VkCoarseSampleLocationNV* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
-    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
-    *ptr += sizeof(VkStructureType);
-    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->descriptorSetCount, sizeof(uint32_t));
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pixelX, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
-    memcpy(*ptr, (const uint32_t*)forMarshaling->pDescriptorCounts, forMarshaling->descriptorSetCount * sizeof(const uint32_t));
-    *ptr += forMarshaling->descriptorSetCount * sizeof(const uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pixelY, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->sample, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
 }
 
-void reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void reservedmarshal_VkCoarseSampleOrderCustomNV(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling,
+    const VkCoarseSampleOrderCustomNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkShadingRatePaletteEntryNV*)&forMarshaling->shadingRate, sizeof(VkShadingRatePaletteEntryNV));
+    *ptr += sizeof(VkShadingRatePaletteEntryNV);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->sampleCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->sampleLocationCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->sampleLocationCount; ++i)
+    {
+        reservedmarshal_VkCoarseSampleLocationNV(vkStream, (const VkCoarseSampleLocationNV*)(forMarshaling->pSampleLocations + i), ptr);
+    }
+}
+
+void reservedmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forMarshaling,
     uint8_t** ptr)
 {
     (void)vkStream;
     memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
     *ptr += sizeof(VkStructureType);
     reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
-    memcpy(*ptr, (uint32_t*)&forMarshaling->maxVariableDescriptorCount, sizeof(uint32_t));
+    memcpy(*ptr, (VkCoarseSampleOrderTypeNV*)&forMarshaling->sampleOrderType, sizeof(VkCoarseSampleOrderTypeNV));
+    *ptr += sizeof(VkCoarseSampleOrderTypeNV);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->customSampleOrderCount, sizeof(uint32_t));
     *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->customSampleOrderCount; ++i)
+    {
+        reservedmarshal_VkCoarseSampleOrderCustomNV(vkStream, (const VkCoarseSampleOrderCustomNV*)(forMarshaling->pCustomSampleOrders + i), ptr);
+    }
 }
 
 #endif
-#ifdef VK_EXT_shader_viewport_index_layer
+#ifdef VK_NV_ray_tracing
+void reservedmarshal_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkRayTracingShaderGroupTypeKHR*)&forMarshaling->type, sizeof(VkRayTracingShaderGroupTypeKHR));
+    *ptr += sizeof(VkRayTracingShaderGroupTypeKHR);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->generalShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->closestHitShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->anyHitShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->intersectionShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkRayTracingPipelineCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
+    *ptr += sizeof(VkPipelineCreateFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+    {
+        reservedmarshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i)
+    {
+        reservedmarshal_VkRayTracingShaderGroupCreateInfoNV(vkStream, (const VkRayTracingShaderGroupCreateInfoNV*)(forMarshaling->pGroups + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxRecursionDepth, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
+void reservedmarshal_VkGeometryTrianglesNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryTrianglesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->vertexData));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->vertexOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->vertexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->vertexStride, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->vertexFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkBuffer((*&forMarshaling->indexData));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->indexOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->indexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
+    *ptr += sizeof(VkIndexType);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkBuffer((*&forMarshaling->transformData));
+    memcpy(*ptr, (uint64_t*)&cgen_var_2, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->transformOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkGeometryAABBNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryAABBNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->aabbData));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->numAABBs, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkGeometryDataNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryDataNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    reservedmarshal_VkGeometryTrianglesNV(vkStream, (VkGeometryTrianglesNV*)(&forMarshaling->triangles), ptr);
+    reservedmarshal_VkGeometryAABBNV(vkStream, (VkGeometryAABBNV*)(&forMarshaling->aabbs), ptr);
+}
+
+void reservedmarshal_VkGeometryNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkGeometryTypeKHR*)&forMarshaling->geometryType, sizeof(VkGeometryTypeKHR));
+    *ptr += sizeof(VkGeometryTypeKHR);
+    reservedmarshal_VkGeometryDataNV(vkStream, (VkGeometryDataNV*)(&forMarshaling->geometry), ptr);
+    memcpy(*ptr, (VkGeometryFlagsKHR*)&forMarshaling->flags, sizeof(VkGeometryFlagsKHR));
+    *ptr += sizeof(VkGeometryFlagsKHR);
+}
+
+void reservedmarshal_VkAccelerationStructureInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAccelerationStructureTypeNV*)&forMarshaling->type, sizeof(VkAccelerationStructureTypeNV));
+    *ptr += sizeof(VkAccelerationStructureTypeNV);
+    memcpy(*ptr, (VkBuildAccelerationStructureFlagsNV*)&forMarshaling->flags, sizeof(VkBuildAccelerationStructureFlagsNV));
+    *ptr += sizeof(VkBuildAccelerationStructureFlagsNV);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->instanceCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->geometryCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->geometryCount; ++i)
+    {
+        reservedmarshal_VkGeometryNV(vkStream, (const VkGeometryNV*)(forMarshaling->pGeometries + i), ptr);
+    }
+}
+
+void reservedmarshal_VkAccelerationStructureCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->compactedSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    reservedmarshal_VkAccelerationStructureInfoNV(vkStream, (VkAccelerationStructureInfoNV*)(&forMarshaling->info), ptr);
+}
+
+void reservedmarshal_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindAccelerationStructureMemoryInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureNV((*&forMarshaling->accelerationStructure));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkDeviceMemory((*&forMarshaling->memory));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->memoryOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->deviceIndexCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pDeviceIndices, forMarshaling->deviceIndexCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->deviceIndexCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->accelerationStructureCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAccelerationStructures;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pAccelerationStructures)
+    {
+        if (forMarshaling->accelerationStructureCount)
+        {
+            uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*ptr);
+            if ((forMarshaling) != nullptr)
+            {
+                for (uint32_t k = 0; k < forMarshaling->accelerationStructureCount; ++k)
+                {
+                    uint64_t tmpval = get_host_u64_VkAccelerationStructureNV(forMarshaling->pAccelerationStructures[k]);
+                    memcpy(cgen_var_0_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                }
+            }
+            *ptr += 8 * forMarshaling->accelerationStructureCount;
+        }
+    }
+}
+
+void reservedmarshal_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAccelerationStructureMemoryRequirementsTypeNV*)&forMarshaling->type, sizeof(VkAccelerationStructureMemoryRequirementsTypeNV));
+    *ptr += sizeof(VkAccelerationStructureMemoryRequirementsTypeNV);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureNV((*&forMarshaling->accelerationStructure));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+}
+
+void reservedmarshal_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPropertiesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderGroupHandleSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxRecursionDepth, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxShaderGroupStride, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxGeometryCount, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxInstanceCount, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxTriangleCount, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetAccelerationStructures, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkTransformMatrixKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTransformMatrixKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (float*)forMarshaling->matrix, ((3)*(4)) * sizeof(float));
+    *ptr += ((3)*(4)) * sizeof(float);
+}
+
+void reservedmarshal_VkAabbPositionsKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAabbPositionsKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (float*)&forMarshaling->minX, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->minY, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->minZ, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->maxX, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->maxY, sizeof(float));
+    *ptr += sizeof(float);
+    memcpy(*ptr, (float*)&forMarshaling->maxZ, sizeof(float));
+    *ptr += sizeof(float);
+}
+
+void reservedmarshal_VkAccelerationStructureInstanceKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInstanceKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    
+    typedef struct VkAccelerationStructureInstanceKHRWithoutBitFields {
+        VkTransformMatrixKHR          transform;
+        uint32_t                      dwords[2];
+        uint64_t                      accelerationStructureReference;
+    } VkAccelerationStructureInstanceKHRWithoutBitFields;
+    
+    (void)vkStream;
+    const VkAccelerationStructureInstanceKHRWithoutBitFields* forMarshaling_new = (const VkAccelerationStructureInstanceKHRWithoutBitFields*)(forMarshaling);
+    reservedmarshal_VkTransformMatrixKHR(vkStream, (VkTransformMatrixKHR*)(&forMarshaling_new->transform), ptr);
+    for (uint32_t i = 0; i < 2; i++) {
+        memcpy(*ptr, (uint32_t*)&(forMarshaling_new->dwords[i]), sizeof(uint32_t));
+        *ptr += sizeof(uint32_t);
+    }
+    memcpy(*ptr, (uint64_t*)&forMarshaling_new->accelerationStructureReference, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    
+}
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void reservedmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->representativeFragmentTest, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->representativeFragmentTestEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void reservedmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkImageViewType*)&forMarshaling->imageViewType, sizeof(VkImageViewType));
+    *ptr += sizeof(VkImageViewType);
+}
+
+void reservedmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->filterCubic, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->filterCubicMinmax, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
 #endif
 #ifdef VK_EXT_global_priority
 void reservedmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
@@ -7501,8 +9806,8 @@
     memcpy(*ptr, (VkExternalMemoryHandleTypeFlagBits*)&forMarshaling->handleType, sizeof(VkExternalMemoryHandleTypeFlagBits));
     *ptr += sizeof(VkExternalMemoryHandleTypeFlagBits);
     // WARNING PTR CHECK
-    uint64_t cgen_var_184 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
-    memcpy((*ptr), &cgen_var_184, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pHostPointer;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pHostPointer)
@@ -7541,6 +9846,36 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void reservedmarshal_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCompilerControlCreateInfoAMD* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineCompilerControlFlagsAMD*)&forMarshaling->compilerControlFlags, sizeof(VkPipelineCompilerControlFlagsAMD));
+    *ptr += sizeof(VkPipelineCompilerControlFlagsAMD);
+}
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void reservedmarshal_VkCalibratedTimestampInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkCalibratedTimestampInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkTimeDomainEXT*)&forMarshaling->timeDomain, sizeof(VkTimeDomainEXT));
+    *ptr += sizeof(VkTimeDomainEXT);
+}
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void reservedmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -7582,6 +9917,21 @@
 }
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void reservedmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkMemoryOverallocationBehaviorAMD*)&forMarshaling->overallocationBehavior, sizeof(VkMemoryOverallocationBehaviorAMD));
+    *ptr += sizeof(VkMemoryOverallocationBehaviorAMD);
+}
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     VulkanStreamGuest* vkStream,
@@ -7625,9 +9975,224 @@
     }
 }
 
+void reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vertexAttributeInstanceRateDivisor, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vertexAttributeInstanceRateZeroDivisor, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_GGP_frame_token
+void reservedmarshal_VkPresentFrameTokenGGP(
+    VulkanStreamGuest* vkStream,
+    const VkPresentFrameTokenGGP* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (GgpFrameToken*)&forMarshaling->frameToken, sizeof(GgpFrameToken));
+    *ptr += sizeof(GgpFrameToken);
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void reservedmarshal_VkPipelineCreationFeedbackEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkPipelineCreationFeedbackFlagsEXT*)&forMarshaling->flags, sizeof(VkPipelineCreationFeedbackFlagsEXT));
+    *ptr += sizeof(VkPipelineCreationFeedbackFlagsEXT);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->duration, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkPipelineCreationFeedbackEXT(vkStream, (VkPipelineCreationFeedbackEXT*)(forMarshaling->pPipelineCreationFeedback), ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pipelineStageCreationFeedbackCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->pipelineStageCreationFeedbackCount; ++i)
+    {
+        reservedmarshal_VkPipelineCreationFeedbackEXT(vkStream, (VkPipelineCreationFeedbackEXT*)(forMarshaling->pPipelineStageCreationFeedbacks + i), ptr);
+    }
+}
+
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void reservedmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->computeDerivativeGroupQuads, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->computeDerivativeGroupLinear, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_mesh_shader
+void reservedmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->taskShader, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->meshShader, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDrawMeshTasksCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTaskWorkGroupInvocations, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)forMarshaling->maxTaskWorkGroupSize, 3 * sizeof(uint32_t));
+    *ptr += 3 * sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTaskTotalMemorySize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxTaskOutputCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMeshWorkGroupInvocations, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)forMarshaling->maxMeshWorkGroupSize, 3 * sizeof(uint32_t));
+    *ptr += 3 * sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMeshTotalMemorySize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMeshOutputVertices, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMeshOutputPrimitives, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxMeshMultiviewViewCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->meshOutputPerVertexGranularity, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->meshOutputPerPrimitiveGranularity, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkDrawMeshTasksIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkDrawMeshTasksIndirectCommandNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->taskCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstTask, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void reservedmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShaderBarycentric, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void reservedmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->imageFootprint, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void reservedmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->exclusiveScissorCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pExclusiveScissors;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pExclusiveScissors)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->exclusiveScissorCount; ++i)
+        {
+            reservedmarshal_VkRect2D(vkStream, (const VkRect2D*)(forMarshaling->pExclusiveScissors + i), ptr);
+        }
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->exclusiveScissor, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void reservedmarshal_VkQueueFamilyCheckpointPropertiesNV(
     VulkanStreamGuest* vkStream,
@@ -7654,8 +10219,8 @@
     memcpy(*ptr, (VkPipelineStageFlagBits*)&forMarshaling->stage, sizeof(VkPipelineStageFlagBits));
     *ptr += sizeof(VkPipelineStageFlagBits);
     // WARNING PTR CHECK
-    uint64_t cgen_var_185 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
-    memcpy((*ptr), &cgen_var_185, 8);
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pCheckpointMarker;
+    memcpy((*ptr), &cgen_var_0, 8);
     android::base::Stream::toBe64((uint8_t*)(*ptr));
     *ptr += 8;
     if (forMarshaling->pCheckpointMarker)
@@ -7666,7 +10231,224 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void reservedmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderIntegerFunctions2, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_INTEL_performance_query
+void reservedmarshal_VkPerformanceValueDataINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueDataINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->value32, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPerformanceValueINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkPerformanceValueTypeINTEL*)&forMarshaling->type, sizeof(VkPerformanceValueTypeINTEL));
+    *ptr += sizeof(VkPerformanceValueTypeINTEL);
+    reservedmarshal_VkPerformanceValueDataINTEL(vkStream, (VkPerformanceValueDataINTEL*)(&forMarshaling->data), ptr);
+}
+
+void reservedmarshal_VkInitializePerformanceApiInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkInitializePerformanceApiInfoINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pUserData;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pUserData)
+    {
+        memcpy(*ptr, (void*)forMarshaling->pUserData, sizeof(uint8_t));
+        *ptr += sizeof(uint8_t);
+    }
+}
+
+void reservedmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkQueryPoolSamplingModeINTEL*)&forMarshaling->performanceCountersSampling, sizeof(VkQueryPoolSamplingModeINTEL));
+    *ptr += sizeof(VkQueryPoolSamplingModeINTEL);
+}
+
+void reservedmarshal_VkPerformanceMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceMarkerInfoINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->marker, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceStreamMarkerInfoINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->marker, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPerformanceOverrideInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceOverrideInfoINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPerformanceOverrideTypeINTEL*)&forMarshaling->type, sizeof(VkPerformanceOverrideTypeINTEL));
+    *ptr += sizeof(VkPerformanceOverrideTypeINTEL);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->enable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->parameter, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+}
+
+void reservedmarshal_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceConfigurationAcquireInfoINTEL* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPerformanceConfigurationTypeINTEL*)&forMarshaling->type, sizeof(VkPerformanceConfigurationTypeINTEL));
+    *ptr += sizeof(VkPerformanceConfigurationTypeINTEL);
+}
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void reservedmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pciDomain, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pciBus, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pciDevice, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pciFunction, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void reservedmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->localDimmingSupport, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->localDimmingEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void reservedmarshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkImagePipeSurfaceCreateFlagsFUCHSIA*)&forMarshaling->flags, sizeof(VkImagePipeSurfaceCreateFlagsFUCHSIA));
+    *ptr += sizeof(VkImagePipeSurfaceCreateFlagsFUCHSIA);
+    memcpy(*ptr, (zx_handle_t*)&forMarshaling->imagePipeHandle, sizeof(zx_handle_t));
+    *ptr += sizeof(zx_handle_t);
+}
+
+#endif
+#ifdef VK_EXT_metal_surface
+void reservedmarshal_VkMetalSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMetalSurfaceCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkMetalSurfaceCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkMetalSurfaceCreateFlagsEXT));
+    *ptr += sizeof(VkMetalSurfaceCreateFlagsEXT);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pLayer;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pLayer)
+    {
+        memcpy(*ptr, (const CAMetalLayer*)forMarshaling->pLayer, sizeof(const CAMetalLayer));
+        *ptr += sizeof(const CAMetalLayer);
+    }
+}
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void reservedmarshal_VkImportColorBufferGOOGLE(
@@ -7717,23 +10499,1913 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void reservedmarshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->subgroupSizeControl, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->computeFullSubgroups, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minSubgroupSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSubgroupSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxComputeWorkgroupSubgroups, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->requiredSubgroupSizeStages, sizeof(VkShaderStageFlags));
+    *ptr += sizeof(VkShaderStageFlags);
+}
+
+void reservedmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->requiredSubgroupSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void reservedmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkShaderCorePropertiesFlagsAMD*)&forMarshaling->shaderCoreFeatures, sizeof(VkShaderCorePropertiesFlagsAMD));
+    *ptr += sizeof(VkShaderCorePropertiesFlagsAMD);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->activeComputeUnitCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void reservedmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->deviceCoherentMemory, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void reservedmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderImageInt64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->sparseImageInt64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void reservedmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)forMarshaling->heapBudget, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+    *ptr += VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)forMarshaling->heapUsage, VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize));
+    *ptr += VK_MAX_MEMORY_HEAPS * sizeof(VkDeviceSize);
+}
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void reservedmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->memoryPriority, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkMemoryPriorityAllocateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryPriorityAllocateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (float*)&forMarshaling->priority, sizeof(float));
+    *ptr += sizeof(float);
+}
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void reservedmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->dedicatedAllocationImageAliasing, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddress, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressCaptureReplay, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bufferDeviceAddressMultiDevice, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+}
+
+#endif
+#ifdef VK_EXT_tooling_info
+void reservedmarshal_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceToolPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (char*)forMarshaling->name, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->version, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
+    memcpy(*ptr, (VkToolPurposeFlagsEXT*)&forMarshaling->purposes, sizeof(VkToolPurposeFlagsEXT));
+    *ptr += sizeof(VkToolPurposeFlagsEXT);
+    memcpy(*ptr, (char*)forMarshaling->description, VK_MAX_DESCRIPTION_SIZE * sizeof(char));
+    *ptr += VK_MAX_DESCRIPTION_SIZE * sizeof(char);
+    memcpy(*ptr, (char*)forMarshaling->layer, VK_MAX_EXTENSION_NAME_SIZE * sizeof(char));
+    *ptr += VK_MAX_EXTENSION_NAME_SIZE * sizeof(char);
+}
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+void reservedmarshal_VkValidationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkValidationFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->enabledValidationFeatureCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkValidationFeatureEnableEXT*)forMarshaling->pEnabledValidationFeatures, forMarshaling->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT));
+    *ptr += forMarshaling->enabledValidationFeatureCount * sizeof(const VkValidationFeatureEnableEXT);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->disabledValidationFeatureCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkValidationFeatureDisableEXT*)forMarshaling->pDisabledValidationFeatures, forMarshaling->disabledValidationFeatureCount * sizeof(const VkValidationFeatureDisableEXT));
+    *ptr += forMarshaling->disabledValidationFeatureCount * sizeof(const VkValidationFeatureDisableEXT);
+}
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void reservedmarshal_VkCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkCooperativeMatrixPropertiesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->MSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->NSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->KSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkComponentTypeNV*)&forMarshaling->AType, sizeof(VkComponentTypeNV));
+    *ptr += sizeof(VkComponentTypeNV);
+    memcpy(*ptr, (VkComponentTypeNV*)&forMarshaling->BType, sizeof(VkComponentTypeNV));
+    *ptr += sizeof(VkComponentTypeNV);
+    memcpy(*ptr, (VkComponentTypeNV*)&forMarshaling->CType, sizeof(VkComponentTypeNV));
+    *ptr += sizeof(VkComponentTypeNV);
+    memcpy(*ptr, (VkComponentTypeNV*)&forMarshaling->DType, sizeof(VkComponentTypeNV));
+    *ptr += sizeof(VkComponentTypeNV);
+    memcpy(*ptr, (VkScopeNV*)&forMarshaling->scope, sizeof(VkScopeNV));
+    *ptr += sizeof(VkScopeNV);
+}
+
+void reservedmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->cooperativeMatrix, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->cooperativeMatrixRobustBufferAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->cooperativeMatrixSupportedStages, sizeof(VkShaderStageFlags));
+    *ptr += sizeof(VkShaderStageFlags);
+}
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void reservedmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->coverageReductionMode, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCoverageReductionStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineCoverageReductionStateCreateFlagsNV*)&forMarshaling->flags, sizeof(VkPipelineCoverageReductionStateCreateFlagsNV));
+    *ptr += sizeof(VkPipelineCoverageReductionStateCreateFlagsNV);
+    memcpy(*ptr, (VkCoverageReductionModeNV*)&forMarshaling->coverageReductionMode, sizeof(VkCoverageReductionModeNV));
+    *ptr += sizeof(VkCoverageReductionModeNV);
+}
+
+void reservedmarshal_VkFramebufferMixedSamplesCombinationNV(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferMixedSamplesCombinationNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkCoverageReductionModeNV*)&forMarshaling->coverageReductionMode, sizeof(VkCoverageReductionModeNV));
+    *ptr += sizeof(VkCoverageReductionModeNV);
+    memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->rasterizationSamples, sizeof(VkSampleCountFlagBits));
+    *ptr += sizeof(VkSampleCountFlagBits);
+    memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->depthStencilSamples, sizeof(VkSampleCountFlags));
+    *ptr += sizeof(VkSampleCountFlags);
+    memcpy(*ptr, (VkSampleCountFlags*)&forMarshaling->colorSamples, sizeof(VkSampleCountFlags));
+    *ptr += sizeof(VkSampleCountFlags);
+}
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void reservedmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShaderSampleInterlock, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShaderPixelInterlock, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShaderShadingRateInterlock, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void reservedmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->ycbcrImageArrays, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void reservedmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFullScreenExclusiveEXT*)&forMarshaling->fullScreenExclusive, sizeof(VkFullScreenExclusiveEXT));
+    *ptr += sizeof(VkFullScreenExclusiveEXT);
+}
+
+void reservedmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fullScreenExclusiveSupported, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (HMONITOR*)&forMarshaling->hmonitor, sizeof(HMONITOR));
+    *ptr += sizeof(HMONITOR);
+}
+
+#endif
+#ifdef VK_EXT_headless_surface
+void reservedmarshal_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkHeadlessSurfaceCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkHeadlessSurfaceCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkHeadlessSurfaceCreateFlagsEXT));
+    *ptr += sizeof(VkHeadlessSurfaceCreateFlagsEXT);
+}
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void reservedmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rectangularLines, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->bresenhamLines, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->smoothLines, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->stippledRectangularLines, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->stippledBresenhamLines, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->stippledSmoothLines, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->lineSubPixelPrecisionBits, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkLineRasterizationModeEXT*)&forMarshaling->lineRasterizationMode, sizeof(VkLineRasterizationModeEXT));
+    *ptr += sizeof(VkLineRasterizationModeEXT);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->stippledLineEnable, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->lineStippleFactor, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint16_t*)&forMarshaling->lineStipplePattern, sizeof(uint16_t));
+    *ptr += sizeof(uint16_t);
+}
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void reservedmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat32Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat32AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderBufferFloat64AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat32Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat32AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat64Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderSharedFloat64AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderImageFloat32Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderImageFloat32AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->sparseImageFloat32Atomics, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->sparseImageFloat32AtomicAdd, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+void reservedmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->indexTypeUint8, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void reservedmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->extendedDynamicState, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->shaderDemoteToHelperInvocation, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void reservedmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxGraphicsShaderGroupCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxIndirectSequenceCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxIndirectCommandsTokenCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxIndirectCommandsStreamCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxIndirectCommandsTokenOffset, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxIndirectCommandsStreamStride, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minSequencesCountBufferOffsetAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minSequencesIndexBufferOffsetAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minIndirectCommandsBufferOffsetAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->deviceGeneratedCommands, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsShaderGroupCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+    {
+        reservedmarshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i), ptr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pVertexInputState;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pVertexInputState)
+    {
+        reservedmarshal_VkPipelineVertexInputStateCreateInfo(vkStream, (const VkPipelineVertexInputStateCreateInfo*)(forMarshaling->pVertexInputState), ptr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pTessellationState;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pTessellationState)
+    {
+        reservedmarshal_VkPipelineTessellationStateCreateInfo(vkStream, (const VkPipelineTessellationStateCreateInfo*)(forMarshaling->pTessellationState), ptr);
+    }
+}
+
+void reservedmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i)
+    {
+        reservedmarshal_VkGraphicsShaderGroupCreateInfoNV(vkStream, (const VkGraphicsShaderGroupCreateInfoNV*)(forMarshaling->pGroups + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pipelineCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    if (forMarshaling->pipelineCount)
+    {
+        uint8_t* cgen_var_0_ptr = (uint8_t*)(*ptr);
+        if ((forMarshaling) != nullptr)
+        {
+            for (uint32_t k = 0; k < forMarshaling->pipelineCount; ++k)
+            {
+                uint64_t tmpval = get_host_u64_VkPipeline(forMarshaling->pPipelines[k]);
+                memcpy(cgen_var_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+            }
+        }
+        *ptr += 8 * forMarshaling->pipelineCount;
+    }
+}
+
+void reservedmarshal_VkBindShaderGroupIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindShaderGroupIndirectCommandNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->groupIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkBindIndexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindIndexBufferIndirectCommandNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->bufferAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->size, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
+    *ptr += sizeof(VkIndexType);
+}
+
+void reservedmarshal_VkBindVertexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindVertexBufferIndirectCommandNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->bufferAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->size, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->stride, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkSetStateFlagsIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkSetStateFlagsIndirectCommandNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->data, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkIndirectCommandsStreamNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsStreamNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkIndirectCommandsLayoutTokenNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutTokenNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkIndirectCommandsTokenTypeNV*)&forMarshaling->tokenType, sizeof(VkIndirectCommandsTokenTypeNV));
+    *ptr += sizeof(VkIndirectCommandsTokenTypeNV);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->stream, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->offset, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->vertexBindingUnit, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->vertexDynamicStride, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipelineLayout((*&forMarshaling->pushconstantPipelineLayout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkShaderStageFlags*)&forMarshaling->pushconstantShaderStageFlags, sizeof(VkShaderStageFlags));
+    *ptr += sizeof(VkShaderStageFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pushconstantOffset, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->pushconstantSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkIndirectStateFlagsNV*)&forMarshaling->indirectStateFlags, sizeof(VkIndirectStateFlagsNV));
+    *ptr += sizeof(VkIndirectStateFlagsNV);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->indexTypeCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const VkIndexType*)forMarshaling->pIndexTypes, forMarshaling->indexTypeCount * sizeof(const VkIndexType));
+    *ptr += forMarshaling->indexTypeCount * sizeof(const VkIndexType);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pIndexTypeValues, forMarshaling->indexTypeCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->indexTypeCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkIndirectCommandsLayoutUsageFlagsNV*)&forMarshaling->flags, sizeof(VkIndirectCommandsLayoutUsageFlagsNV));
+    *ptr += sizeof(VkIndirectCommandsLayoutUsageFlagsNV);
+    memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    *ptr += sizeof(VkPipelineBindPoint);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->tokenCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->tokenCount; ++i)
+    {
+        reservedmarshal_VkIndirectCommandsLayoutTokenNV(vkStream, (const VkIndirectCommandsLayoutTokenNV*)(forMarshaling->pTokens + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->streamCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (const uint32_t*)forMarshaling->pStreamStrides, forMarshaling->streamCount * sizeof(const uint32_t));
+    *ptr += forMarshaling->streamCount * sizeof(const uint32_t);
+}
+
+void reservedmarshal_VkGeneratedCommandsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    *ptr += sizeof(VkPipelineBindPoint);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipeline((*&forMarshaling->pipeline));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkIndirectCommandsLayoutNV((*&forMarshaling->indirectCommandsLayout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->streamCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->streamCount; ++i)
+    {
+        reservedmarshal_VkIndirectCommandsStreamNV(vkStream, (const VkIndirectCommandsStreamNV*)(forMarshaling->pStreams + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->sequencesCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    uint64_t cgen_var_2;
+    *&cgen_var_2 = get_host_u64_VkBuffer((*&forMarshaling->preprocessBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_2, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->preprocessOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->preprocessSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = get_host_u64_VkBuffer((*&forMarshaling->sequencesCountBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_3, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->sequencesCountOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    uint64_t cgen_var_4;
+    *&cgen_var_4 = get_host_u64_VkBuffer((*&forMarshaling->sequencesIndexBuffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_4, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->sequencesIndexOffset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineBindPoint*)&forMarshaling->pipelineBindPoint, sizeof(VkPipelineBindPoint));
+    *ptr += sizeof(VkPipelineBindPoint);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkPipeline((*&forMarshaling->pipeline));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkIndirectCommandsLayoutNV((*&forMarshaling->indirectCommandsLayout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSequencesCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->texelBufferAlignment, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->storageTexelBufferOffsetAlignmentBytes, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->storageTexelBufferOffsetSingleTexelAlignment, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->uniformTexelBufferOffsetAlignmentBytes, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->uniformTexelBufferOffsetSingleTexelAlignment, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void reservedmarshal_VkRenderPassTransformBeginInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassTransformBeginInfoQCOM* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+    *ptr += sizeof(VkSurfaceTransformFlagBitsKHR);
+}
+
+void reservedmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+    *ptr += sizeof(VkSurfaceTransformFlagBitsKHR);
+    reservedmarshal_VkRect2D(vkStream, (VkRect2D*)(&forMarshaling->renderArea), ptr);
+}
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void reservedmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->deviceMemoryReport, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryReportCallbackDataEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDeviceMemoryReportFlagsEXT));
+    *ptr += sizeof(VkDeviceMemoryReportFlagsEXT);
+    memcpy(*ptr, (VkDeviceMemoryReportEventTypeEXT*)&forMarshaling->type, sizeof(VkDeviceMemoryReportEventTypeEXT));
+    *ptr += sizeof(VkDeviceMemoryReportEventTypeEXT);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->memoryObjectId, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkObjectType*)&forMarshaling->objectType, sizeof(VkObjectType));
+    *ptr += sizeof(VkObjectType);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->objectHandle, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->heapIndex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceMemoryReportFlagsEXT*)&forMarshaling->flags, sizeof(VkDeviceMemoryReportFlagsEXT));
+    *ptr += sizeof(VkDeviceMemoryReportFlagsEXT);
+    uint64_t cgen_var_0 = (uint64_t)forMarshaling->pfnUserCallback;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    memcpy(*ptr, (void*)forMarshaling->pUserData, sizeof(uint8_t));
+    *ptr += sizeof(uint8_t);
+}
+
+#endif
+#ifdef VK_EXT_robustness2
+void reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->robustBufferAccess2, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->robustImageAccess2, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->nullDescriptor, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->robustStorageBufferAccessSizeAlignment, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->robustUniformBufferAccessSizeAlignment, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void reservedmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkClearColorValue(vkStream, (VkClearColorValue*)(&forMarshaling->customBorderColor), ptr);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->format, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+}
+
+void reservedmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxCustomBorderColorSamplers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->customBorderColors, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->customBorderColorWithoutFormat, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void reservedmarshal_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->privateData, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkDevicePrivateDataCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDevicePrivateDataCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->privateDataSlotRequestCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkPrivateDataSlotCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPrivateDataSlotCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPrivateDataSlotCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkPrivateDataSlotCreateFlagsEXT));
+    *ptr += sizeof(VkPrivateDataSlotCreateFlagsEXT);
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void reservedmarshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->pipelineCreationCacheControl, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void reservedmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->diagnosticsConfig, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceDiagnosticsConfigFlagsNV*)&forMarshaling->flags, sizeof(VkDeviceDiagnosticsConfigFlagsNV));
+    *ptr += sizeof(VkDeviceDiagnosticsConfigFlagsNV);
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentShadingRateEnums, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->supersampleFragmentShadingRates, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->noInvocationFragmentShadingRates, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSampleCountFlagBits*)&forMarshaling->maxFragmentShadingRateInvocationCount, sizeof(VkSampleCountFlagBits));
+    *ptr += sizeof(VkSampleCountFlagBits);
+}
+
+void reservedmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFragmentShadingRateTypeNV*)&forMarshaling->shadingRateType, sizeof(VkFragmentShadingRateTypeNV));
+    *ptr += sizeof(VkFragmentShadingRateTypeNV);
+    memcpy(*ptr, (VkFragmentShadingRateNV*)&forMarshaling->shadingRate, sizeof(VkFragmentShadingRateNV));
+    *ptr += sizeof(VkFragmentShadingRateNV);
+    memcpy(*ptr, (VkFragmentShadingRateCombinerOpKHR*)forMarshaling->combinerOps, 2 * sizeof(VkFragmentShadingRateCombinerOpKHR));
+    *ptr += 2 * sizeof(VkFragmentShadingRateCombinerOpKHR);
+}
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void reservedmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->fragmentDensityMapDeferred, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->subsampledLoads, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->subsampledCoarseReconstructionEarlyAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxSubsampledArrayLayers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetSubsampledSamplers, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void reservedmarshal_VkCopyCommandTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCopyCommandTransformInfoQCOM* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkSurfaceTransformFlagBitsKHR*)&forMarshaling->transform, sizeof(VkSurfaceTransformFlagBitsKHR));
+    *ptr += sizeof(VkSurfaceTransformFlagBitsKHR);
+}
+
+#endif
+#ifdef VK_EXT_image_robustness
+void reservedmarshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->robustImageAccess, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_4444_formats
+void reservedmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->formatA4R4G4B4, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->formatA4B4G4R4, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void reservedmarshal_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDirectFBSurfaceCreateInfoEXT* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDirectFBSurfaceCreateFlagsEXT*)&forMarshaling->flags, sizeof(VkDirectFBSurfaceCreateFlagsEXT));
+    *ptr += sizeof(VkDirectFBSurfaceCreateFlagsEXT);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->dfb;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->dfb)
+    {
+        memcpy(*ptr, (IDirectFB*)forMarshaling->dfb, sizeof(IDirectFB));
+        *ptr += sizeof(IDirectFB);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->surface;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->surface)
+    {
+        memcpy(*ptr, (IDirectFBSurface*)forMarshaling->surface, sizeof(IDirectFBSurface));
+        *ptr += sizeof(IDirectFBSurface);
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void reservedmarshal_VkDeviceOrHostAddressKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+}
+
+void reservedmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+}
+
+void reservedmarshal_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildRangeInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->primitiveCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->primitiveOffset, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->firstVertex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->transformOffset, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkFormat*)&forMarshaling->vertexFormat, sizeof(VkFormat));
+    *ptr += sizeof(VkFormat);
+    reservedmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->vertexData), ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->vertexStride, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxVertex, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (VkIndexType*)&forMarshaling->indexType, sizeof(VkIndexType));
+    *ptr += sizeof(VkIndexType);
+    reservedmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->indexData), ptr);
+    reservedmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->transformData), ptr);
+}
+
+void reservedmarshal_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryAabbsDataKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->data), ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->stride, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryInstancesDataKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->arrayOfPointers, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    reservedmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->data), ptr);
+}
+
+void reservedmarshal_VkAccelerationStructureGeometryDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryDataKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    reservedmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(vkStream, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&forMarshaling->triangles), ptr);
+}
+
+void reservedmarshal_VkAccelerationStructureGeometryKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkGeometryTypeKHR*)&forMarshaling->geometryType, sizeof(VkGeometryTypeKHR));
+    *ptr += sizeof(VkGeometryTypeKHR);
+    reservedmarshal_VkAccelerationStructureGeometryDataKHR(vkStream, (VkAccelerationStructureGeometryDataKHR*)(&forMarshaling->geometry), ptr);
+    memcpy(*ptr, (VkGeometryFlagsKHR*)&forMarshaling->flags, sizeof(VkGeometryFlagsKHR));
+    *ptr += sizeof(VkGeometryFlagsKHR);
+}
+
+void reservedmarshal_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildGeometryInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAccelerationStructureTypeKHR*)&forMarshaling->type, sizeof(VkAccelerationStructureTypeKHR));
+    *ptr += sizeof(VkAccelerationStructureTypeKHR);
+    memcpy(*ptr, (VkBuildAccelerationStructureFlagsKHR*)&forMarshaling->flags, sizeof(VkBuildAccelerationStructureFlagsKHR));
+    *ptr += sizeof(VkBuildAccelerationStructureFlagsKHR);
+    memcpy(*ptr, (VkBuildAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkBuildAccelerationStructureModeKHR));
+    *ptr += sizeof(VkBuildAccelerationStructureModeKHR);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureKHR((*&forMarshaling->srcAccelerationStructure));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkAccelerationStructureKHR((*&forMarshaling->dstAccelerationStructure));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->geometryCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pGeometries;
+    memcpy((*ptr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pGeometries)
+    {
+        for (uint32_t i = 0; i < (uint32_t)forMarshaling->geometryCount; ++i)
+        {
+            reservedmarshal_VkAccelerationStructureGeometryKHR(vkStream, (const VkAccelerationStructureGeometryKHR*)(forMarshaling->pGeometries + i), ptr);
+        }
+    }
+    reservedmarshal_VkDeviceOrHostAddressKHR(vkStream, (VkDeviceOrHostAddressKHR*)(&forMarshaling->scratchData), ptr);
+}
+
+void reservedmarshal_VkAccelerationStructureCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkAccelerationStructureCreateFlagsKHR*)&forMarshaling->createFlags, sizeof(VkAccelerationStructureCreateFlagsKHR));
+    *ptr += sizeof(VkAccelerationStructureCreateFlagsKHR);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkBuffer((*&forMarshaling->buffer));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->offset, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkAccelerationStructureTypeKHR*)&forMarshaling->type, sizeof(VkAccelerationStructureTypeKHR));
+    *ptr += sizeof(VkAccelerationStructureTypeKHR);
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+}
+
+void reservedmarshal_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->accelerationStructureCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pAccelerationStructures;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pAccelerationStructures)
+    {
+        if (forMarshaling->accelerationStructureCount)
+        {
+            uint8_t* cgen_var_0_0_ptr = (uint8_t*)(*ptr);
+            if ((forMarshaling) != nullptr)
+            {
+                for (uint32_t k = 0; k < forMarshaling->accelerationStructureCount; ++k)
+                {
+                    uint64_t tmpval = get_host_u64_VkAccelerationStructureKHR(forMarshaling->pAccelerationStructures[k]);
+                    memcpy(cgen_var_0_0_ptr + k * 8, &tmpval, sizeof(uint64_t));
+                }
+            }
+            *ptr += 8 * forMarshaling->accelerationStructureCount;
+        }
+    }
+}
+
+void reservedmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->accelerationStructure, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->accelerationStructureCaptureReplay, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->accelerationStructureIndirectBuild, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->accelerationStructureHostCommands, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->descriptorBindingAccelerationStructureUpdateAfterBind, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxGeometryCount, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxInstanceCount, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint64_t*)&forMarshaling->maxPrimitiveCount, sizeof(uint64_t));
+    *ptr += sizeof(uint64_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorAccelerationStructures, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPerStageDescriptorUpdateAfterBindAccelerationStructures, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetAccelerationStructures, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxDescriptorSetUpdateAfterBindAccelerationStructures, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->minAccelerationStructureScratchOffsetAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureDeviceAddressInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureKHR((*&forMarshaling->accelerationStructure));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+}
+
+void reservedmarshal_VkAccelerationStructureVersionInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureVersionInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (const uint8_t*)forMarshaling->pVersionData, 2*VK_UUID_SIZE * sizeof(const uint8_t));
+    *ptr += 2*VK_UUID_SIZE * sizeof(const uint8_t);
+}
+
+void reservedmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureKHR((*&forMarshaling->src));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    reservedmarshal_VkDeviceOrHostAddressKHR(vkStream, (VkDeviceOrHostAddressKHR*)(&forMarshaling->dst), ptr);
+    memcpy(*ptr, (VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+    *ptr += sizeof(VkCopyAccelerationStructureModeKHR);
+}
+
+void reservedmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    reservedmarshal_VkDeviceOrHostAddressConstKHR(vkStream, (VkDeviceOrHostAddressConstKHR*)(&forMarshaling->src), ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureKHR((*&forMarshaling->dst));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+    *ptr += sizeof(VkCopyAccelerationStructureModeKHR);
+}
+
+void reservedmarshal_VkCopyAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    uint64_t cgen_var_0;
+    *&cgen_var_0 = get_host_u64_VkAccelerationStructureKHR((*&forMarshaling->src));
+    memcpy(*ptr, (uint64_t*)&cgen_var_0, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_1;
+    *&cgen_var_1 = get_host_u64_VkAccelerationStructureKHR((*&forMarshaling->dst));
+    memcpy(*ptr, (uint64_t*)&cgen_var_1, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (VkCopyAccelerationStructureModeKHR*)&forMarshaling->mode, sizeof(VkCopyAccelerationStructureModeKHR));
+    *ptr += sizeof(VkCopyAccelerationStructureModeKHR);
+}
+
+void reservedmarshal_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildSizesInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->accelerationStructureSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->updateScratchSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->buildScratchSize, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void reservedmarshal_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkRayTracingShaderGroupTypeKHR*)&forMarshaling->type, sizeof(VkRayTracingShaderGroupTypeKHR));
+    *ptr += sizeof(VkRayTracingShaderGroupTypeKHR);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->generalShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->closestHitShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->anyHitShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->intersectionShader, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pShaderGroupCaptureReplayHandle;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pShaderGroupCaptureReplayHandle)
+    {
+        memcpy(*ptr, (const void*)forMarshaling->pShaderGroupCaptureReplayHandle, sizeof(const uint8_t));
+        *ptr += sizeof(const uint8_t);
+    }
+}
+
+void reservedmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPipelineRayPayloadSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPipelineRayHitAttributeSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkRayTracingPipelineCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkPipelineCreateFlags*)&forMarshaling->flags, sizeof(VkPipelineCreateFlags));
+    *ptr += sizeof(VkPipelineCreateFlags);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->stageCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->stageCount; ++i)
+    {
+        reservedmarshal_VkPipelineShaderStageCreateInfo(vkStream, (const VkPipelineShaderStageCreateInfo*)(forMarshaling->pStages + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->groupCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    for (uint32_t i = 0; i < (uint32_t)forMarshaling->groupCount; ++i)
+    {
+        reservedmarshal_VkRayTracingShaderGroupCreateInfoKHR(vkStream, (const VkRayTracingShaderGroupCreateInfoKHR*)(forMarshaling->pGroups + i), ptr);
+    }
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxPipelineRayRecursionDepth, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    // WARNING PTR CHECK
+    uint64_t cgen_var_0 = (uint64_t)(uintptr_t)forMarshaling->pLibraryInfo;
+    memcpy((*ptr), &cgen_var_0, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pLibraryInfo)
+    {
+        reservedmarshal_VkPipelineLibraryCreateInfoKHR(vkStream, (const VkPipelineLibraryCreateInfoKHR*)(forMarshaling->pLibraryInfo), ptr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_1 = (uint64_t)(uintptr_t)forMarshaling->pLibraryInterface;
+    memcpy((*ptr), &cgen_var_1, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pLibraryInterface)
+    {
+        reservedmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(vkStream, (const VkRayTracingPipelineInterfaceCreateInfoKHR*)(forMarshaling->pLibraryInterface), ptr);
+    }
+    // WARNING PTR CHECK
+    uint64_t cgen_var_2 = (uint64_t)(uintptr_t)forMarshaling->pDynamicState;
+    memcpy((*ptr), &cgen_var_2, 8);
+    android::base::Stream::toBe64((uint8_t*)(*ptr));
+    *ptr += 8;
+    if (forMarshaling->pDynamicState)
+    {
+        reservedmarshal_VkPipelineDynamicStateCreateInfo(vkStream, (const VkPipelineDynamicStateCreateInfo*)(forMarshaling->pDynamicState), ptr);
+    }
+    uint64_t cgen_var_3;
+    *&cgen_var_3 = get_host_u64_VkPipelineLayout((*&forMarshaling->layout));
+    memcpy(*ptr, (uint64_t*)&cgen_var_3, 1 * 8);
+    *ptr += 1 * 8;
+    uint64_t cgen_var_4;
+    *&cgen_var_4 = get_host_u64_VkPipeline((*&forMarshaling->basePipelineHandle));
+    memcpy(*ptr, (uint64_t*)&cgen_var_4, 1 * 8);
+    *ptr += 1 * 8;
+    memcpy(*ptr, (int32_t*)&forMarshaling->basePipelineIndex, sizeof(int32_t));
+    *ptr += sizeof(int32_t);
+}
+
+void reservedmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayTracingPipeline, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayTracingPipelineShaderGroupHandleCaptureReplay, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayTracingPipelineShaderGroupHandleCaptureReplayMixed, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayTracingPipelineTraceRaysIndirect, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayTraversalPrimitiveCulling, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
+void reservedmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderGroupHandleSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxRayRecursionDepth, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxShaderGroupStride, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderGroupBaseAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderGroupHandleCaptureReplaySize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxRayDispatchInvocationCount, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->shaderGroupHandleAlignment, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->maxRayHitAttributeSize, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+void reservedmarshal_VkStridedDeviceAddressRegionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkStridedDeviceAddressRegionKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkDeviceAddress*)&forMarshaling->deviceAddress, sizeof(VkDeviceAddress));
+    *ptr += sizeof(VkDeviceAddress);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->stride, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+    memcpy(*ptr, (VkDeviceSize*)&forMarshaling->size, sizeof(VkDeviceSize));
+    *ptr += sizeof(VkDeviceSize);
+}
+
+void reservedmarshal_VkTraceRaysIndirectCommandKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTraceRaysIndirectCommandKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (uint32_t*)&forMarshaling->width, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->height, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+    memcpy(*ptr, (uint32_t*)&forMarshaling->depth, sizeof(uint32_t));
+    *ptr += sizeof(uint32_t);
+}
+
+#endif
+#ifdef VK_KHR_ray_query
+void reservedmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* forMarshaling,
+    uint8_t** ptr)
+{
+    (void)vkStream;
+    memcpy(*ptr, (VkStructureType*)&forMarshaling->sType, sizeof(VkStructureType));
+    *ptr += sizeof(VkStructureType);
+    reservedmarshal_extension_struct(vkStream, forMarshaling->pNext, ptr);
+    memcpy(*ptr, (VkBool32*)&forMarshaling->rayQuery, sizeof(VkBool32));
+    *ptr += sizeof(VkBool32);
+}
+
 #endif
 void reservedmarshal_extension_struct(
     VulkanStreamGuest* vkStream,
@@ -7868,9 +12540,9 @@
             reservedmarshal_VkPhysicalDeviceMultiviewProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceMultiviewProperties*>(structExtension), ptr);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            reservedmarshal_VkPhysicalDeviceVariablePointerFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVariablePointerFeatures*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDeviceVariablePointersFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVariablePointersFeatures*>(structExtension), ptr);
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -7958,9 +12630,201 @@
             reservedmarshal_VkPhysicalDeviceMaintenance3Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceMaintenance3Properties*>(structExtension), ptr);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            reservedmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceVulkan11Features(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan11Features*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceVulkan11Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan11Properties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceVulkan12Features(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan12Features*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceVulkan12Properties(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkan12Properties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            reservedmarshal_VkImageFormatListCreateInfo(vkStream, reinterpret_cast<const VkImageFormatListCreateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDevice8BitStorageFeatures(vkStream, reinterpret_cast<const VkPhysicalDevice8BitStorageFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceDriverProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceDriverProperties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderAtomicInt64Features(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceFloatControlsProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceFloatControlsProperties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(vkStream, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceDescriptorIndexingProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            reservedmarshal_VkSubpassDescriptionDepthStencilResolve(vkStream, reinterpret_cast<const VkSubpassDescriptionDepthStencilResolve*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceDepthStencilResolveProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            reservedmarshal_VkImageStencilUsageCreateInfo(vkStream, reinterpret_cast<const VkImageStencilUsageCreateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            reservedmarshal_VkSamplerReductionModeCreateInfo(vkStream, reinterpret_cast<const VkSamplerReductionModeCreateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            reservedmarshal_VkFramebufferAttachmentsCreateInfo(vkStream, reinterpret_cast<const VkFramebufferAttachmentsCreateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            reservedmarshal_VkRenderPassAttachmentBeginInfo(vkStream, reinterpret_cast<const VkRenderPassAttachmentBeginInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            reservedmarshal_VkAttachmentReferenceStencilLayout(vkStream, reinterpret_cast<const VkAttachmentReferenceStencilLayout*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            reservedmarshal_VkAttachmentDescriptionStencilLayout(vkStream, reinterpret_cast<const VkAttachmentDescriptionStencilLayout*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceHostQueryResetFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceHostQueryResetFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            reservedmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(vkStream, reinterpret_cast<const VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            reservedmarshal_VkSemaphoreTypeCreateInfo(vkStream, reinterpret_cast<const VkSemaphoreTypeCreateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            reservedmarshal_VkTimelineSemaphoreSubmitInfo(vkStream, reinterpret_cast<const VkTimelineSemaphoreSubmitInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(vkStream, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfo(vkStream, reinterpret_cast<const VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(vkStream, reinterpret_cast<const VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension), ptr);
             break;
         }
 #endif
@@ -8059,24 +12923,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            reservedmarshal_VkImageFormatListCreateInfoKHR(vkStream, reinterpret_cast<const VkImageFormatListCreateInfoKHR*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            reservedmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            reservedmarshal_VkQueryPoolPerformanceCreateInfoKHR(vkStream, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            reservedmarshal_VkPerformanceQuerySubmitInfoKHR(vkStream, reinterpret_cast<const VkPerformanceQuerySubmitInfoKHR*>(structExtension), ptr);
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            reservedmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            reservedmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension), ptr);
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            reservedmarshal_VkFragmentShadingRateAttachmentInfoKHR(vkStream, reinterpret_cast<const VkFragmentShadingRateAttachmentInfoKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            reservedmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(vkStream, reinterpret_cast<const VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            reservedmarshal_VkSurfaceProtectedCapabilitiesKHR(vkStream, reinterpret_cast<const VkSurfaceProtectedCapabilitiesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension), ptr);
             break;
         }
 #endif
@@ -8118,6 +13045,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -8125,6 +13069,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -8163,6 +13114,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            reservedmarshal_VkImageViewASTCDecodeModeEXT(vkStream, reinterpret_cast<const VkImageViewASTCDecodeModeEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -8234,6 +13204,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -8263,15 +13245,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            reservedmarshal_VkSamplerReductionModeCreateInfoEXT(vkStream, reinterpret_cast<const VkSamplerReductionModeCreateInfoEXT*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension), ptr);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            reservedmarshal_VkWriteDescriptorSetInlineUniformBlockEXT(vkStream, reinterpret_cast<const VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension), ptr);
             break;
         }
 #endif
@@ -8328,6 +13320,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            reservedmarshal_VkDrmFormatModifierPropertiesListEXT(vkStream, reinterpret_cast<const VkDrmFormatModifierPropertiesListEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkImageDrmFormatModifierListCreateInfoEXT(vkStream, reinterpret_cast<const VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(vkStream, reinterpret_cast<const VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -8335,30 +13361,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension), ptr);
+            reservedmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension), ptr);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension), ptr);
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            reservedmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension), ptr);
+            reservedmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension), ptr);
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension), ptr);
+            reservedmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension), ptr);
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(vkStream, reinterpret_cast<const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension), ptr);
+            reservedmarshal_VkWriteDescriptorSetAccelerationStructureNV(vkStream, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceRayTracingPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            reservedmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(vkStream, reinterpret_cast<const VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension), ptr);
             break;
         }
 #endif
@@ -8381,6 +13438,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            reservedmarshal_VkPipelineCompilerControlCreateInfoAMD(vkStream, reinterpret_cast<const VkPipelineCompilerControlCreateInfoAMD*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -8388,6 +13452,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            reservedmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(vkStream, reinterpret_cast<const VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -8399,6 +13470,70 @@
             reservedmarshal_VkPipelineVertexInputDivisorStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension), ptr);
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            reservedmarshal_VkPresentFrameTokenGGP(vkStream, reinterpret_cast<const VkPresentFrameTokenGGP*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkPipelineCreationFeedbackCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            reservedmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension), ptr);
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -8407,6 +13542,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            reservedmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(vkStream, reinterpret_cast<const VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            reservedmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(vkStream, reinterpret_cast<const VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            reservedmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(vkStream, reinterpret_cast<const VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension), ptr);
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -8424,6 +13592,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            reservedmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(vkStream, reinterpret_cast<const VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            reservedmarshal_VkMemoryPriorityAllocateInfoEXT(vkStream, reinterpret_cast<const VkMemoryPriorityAllocateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkBufferDeviceAddressCreateInfoEXT(vkStream, reinterpret_cast<const VkBufferDeviceAddressCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            reservedmarshal_VkValidationFeaturesEXT(vkStream, reinterpret_cast<const VkValidationFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            reservedmarshal_VkPipelineCoverageReductionStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            reservedmarshal_VkSurfaceFullScreenExclusiveInfoEXT(vkStream, reinterpret_cast<const VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            reservedmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(vkStream, reinterpret_cast<const VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            reservedmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(vkStream, reinterpret_cast<const VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(vkStream, reinterpret_cast<const VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            reservedmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(vkStream, reinterpret_cast<const VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            reservedmarshal_VkRenderPassTransformBeginInfoQCOM(vkStream, reinterpret_cast<const VkRenderPassTransformBeginInfoQCOM*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            reservedmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(vkStream, reinterpret_cast<const VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(vkStream, reinterpret_cast<const VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkSamplerCustomBorderColorCreateInfoEXT(vkStream, reinterpret_cast<const VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDevicePrivateDataFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            reservedmarshal_VkDevicePrivateDataCreateInfoEXT(vkStream, reinterpret_cast<const VkDevicePrivateDataCreateInfoEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            reservedmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(vkStream, reinterpret_cast<const VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            reservedmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(vkStream, reinterpret_cast<const VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            reservedmarshal_VkCopyCommandTransformInfoQCOM(vkStream, reinterpret_cast<const VkCopyCommandTransformInfoQCOM*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            reservedmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(vkStream, reinterpret_cast<const VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            reservedmarshal_VkWriteDescriptorSetAccelerationStructureKHR(vkStream, reinterpret_cast<const VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            reservedmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(vkStream, reinterpret_cast<const VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension), ptr);
+            break;
+        }
+#endif
         default:
         {
             // fatal; the switch is only taken if the extension struct is known
diff --git a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
index b6eb668..ac5f12a 100644
--- a/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
+++ b/system/vulkan_enc/goldfish_vk_reserved_marshaling_guest.h
@@ -44,29 +44,9 @@
 namespace goldfish_vk {
 
 #ifdef VK_VERSION_1_0
-void reservedmarshal_VkApplicationInfo(
+void reservedmarshal_VkExtent2D(
     VulkanStreamGuest* vkStream,
-    const VkApplicationInfo* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkInstanceCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkInstanceCreateInfo* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkAllocationCallbacks(
-    VulkanStreamGuest* vkStream,
-    const VkAllocationCallbacks* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkPhysicalDeviceFeatures(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceFeatures* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkFormatProperties(
-    VulkanStreamGuest* vkStream,
-    const VkFormatProperties* forMarshaling,
+    const VkExtent2D* forMarshaling,
     uint8_t** ptr);
 
 void reservedmarshal_VkExtent3D(
@@ -74,16 +54,116 @@
     const VkExtent3D* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkOffset2D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset2D* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkOffset3D(
+    VulkanStreamGuest* vkStream,
+    const VkOffset3D* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRect2D(
+    VulkanStreamGuest* vkStream,
+    const VkRect2D* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBaseInStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseInStructure* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBaseOutStructure(
+    VulkanStreamGuest* vkStream,
+    const VkBaseOutStructure* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkBufferMemoryBarrier* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDispatchIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDispatchIndirectCommand* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDrawIndexedIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndexedIndirectCommand* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDrawIndirectCommand(
+    VulkanStreamGuest* vkStream,
+    const VkDrawIndirectCommand* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageSubresourceRange(
+    VulkanStreamGuest* vkStream,
+    const VkImageSubresourceRange* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkImageMemoryBarrier* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMemoryBarrier(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryBarrier* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAllocationCallbacks(
+    VulkanStreamGuest* vkStream,
+    const VkAllocationCallbacks* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkApplicationInfo(
+    VulkanStreamGuest* vkStream,
+    const VkApplicationInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkFormatProperties(
+    VulkanStreamGuest* vkStream,
+    const VkFormatProperties* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkImageFormatProperties(
     VulkanStreamGuest* vkStream,
     const VkImageFormatProperties* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkInstanceCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkInstanceCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMemoryHeap(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryHeap* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMemoryType(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryType* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFeatures* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkPhysicalDeviceLimits(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceLimits* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkPhysicalDeviceMemoryProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryProperties* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkPhysicalDeviceSparseProperties(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceSparseProperties* forMarshaling,
@@ -99,21 +179,6 @@
     const VkQueueFamilyProperties* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkMemoryType(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryType* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkMemoryHeap(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryHeap* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkPhysicalDeviceMemoryProperties(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceMemoryProperties* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkDeviceQueueCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkDeviceQueueCreateInfo* forMarshaling,
@@ -139,31 +204,21 @@
     const VkSubmitInfo* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkMemoryAllocateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryAllocateInfo* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkMappedMemoryRange(
     VulkanStreamGuest* vkStream,
     const VkMappedMemoryRange* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkMemoryAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryAllocateInfo* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkMemoryRequirements(
     VulkanStreamGuest* vkStream,
     const VkMemoryRequirements* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkSparseImageFormatProperties(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageFormatProperties* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkSparseImageMemoryRequirements(
-    VulkanStreamGuest* vkStream,
-    const VkSparseImageMemoryRequirements* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkSparseMemoryBind(
     VulkanStreamGuest* vkStream,
     const VkSparseMemoryBind* forMarshaling,
@@ -184,11 +239,6 @@
     const VkImageSubresource* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkOffset3D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset3D* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkSparseImageMemoryBind(
     VulkanStreamGuest* vkStream,
     const VkSparseImageMemoryBind* forMarshaling,
@@ -204,6 +254,16 @@
     const VkBindSparseInfo* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkSparseImageFormatProperties(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageFormatProperties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSparseImageMemoryRequirements(
+    VulkanStreamGuest* vkStream,
+    const VkSparseImageMemoryRequirements* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkFenceCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkFenceCreateInfo* forMarshaling,
@@ -249,11 +309,6 @@
     const VkComponentMapping* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkImageSubresourceRange(
-    VulkanStreamGuest* vkStream,
-    const VkImageSubresourceRange* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkImageViewCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkImageViewCreateInfo* forMarshaling,
@@ -284,6 +339,11 @@
     const VkPipelineShaderStageCreateInfo* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkComputePipelineCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkComputePipelineCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkVertexInputBindingDescription(
     VulkanStreamGuest* vkStream,
     const VkVertexInputBindingDescription* forMarshaling,
@@ -314,21 +374,6 @@
     const VkViewport* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkOffset2D(
-    VulkanStreamGuest* vkStream,
-    const VkOffset2D* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkExtent2D(
-    VulkanStreamGuest* vkStream,
-    const VkExtent2D* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkRect2D(
-    VulkanStreamGuest* vkStream,
-    const VkRect2D* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkPipelineViewportStateCreateInfo(
     VulkanStreamGuest* vkStream,
     const VkPipelineViewportStateCreateInfo* forMarshaling,
@@ -374,11 +419,6 @@
     const VkGraphicsPipelineCreateInfo* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkComputePipelineCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkComputePipelineCreateInfo* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkPushConstantRange(
     VulkanStreamGuest* vkStream,
     const VkPushConstantRange* forMarshaling,
@@ -394,14 +434,19 @@
     const VkSamplerCreateInfo* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkDescriptorSetLayoutBinding(
+void reservedmarshal_VkCopyDescriptorSet(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBinding* forMarshaling,
+    const VkCopyDescriptorSet* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkDescriptorSetLayoutCreateInfo(
+void reservedmarshal_VkDescriptorBufferInfo(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutCreateInfo* forMarshaling,
+    const VkDescriptorBufferInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDescriptorImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorImageInfo* forMarshaling,
     uint8_t** ptr);
 
 void reservedmarshal_VkDescriptorPoolSize(
@@ -419,14 +464,14 @@
     const VkDescriptorSetAllocateInfo* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkDescriptorImageInfo(
+void reservedmarshal_VkDescriptorSetLayoutBinding(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorImageInfo* forMarshaling,
+    const VkDescriptorSetLayoutBinding* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkDescriptorBufferInfo(
+void reservedmarshal_VkDescriptorSetLayoutCreateInfo(
     VulkanStreamGuest* vkStream,
-    const VkDescriptorBufferInfo* forMarshaling,
+    const VkDescriptorSetLayoutCreateInfo* forMarshaling,
     uint8_t** ptr);
 
 void reservedmarshal_VkWriteDescriptorSet(
@@ -434,16 +479,6 @@
     const VkWriteDescriptorSet* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkCopyDescriptorSet(
-    VulkanStreamGuest* vkStream,
-    const VkCopyDescriptorSet* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkFramebufferCreateInfo(
-    VulkanStreamGuest* vkStream,
-    const VkFramebufferCreateInfo* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkAttachmentDescription(
     VulkanStreamGuest* vkStream,
     const VkAttachmentDescription* forMarshaling,
@@ -454,6 +489,11 @@
     const VkAttachmentReference* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkFramebufferCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkSubpassDescription(
     VulkanStreamGuest* vkStream,
     const VkSubpassDescription* forMarshaling,
@@ -499,16 +539,6 @@
     const VkImageSubresourceLayers* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkImageCopy(
-    VulkanStreamGuest* vkStream,
-    const VkImageCopy* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkImageBlit(
-    VulkanStreamGuest* vkStream,
-    const VkImageBlit* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkBufferImageCopy(
     VulkanStreamGuest* vkStream,
     const VkBufferImageCopy* forMarshaling,
@@ -539,56 +569,26 @@
     const VkClearRect* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkImageBlit(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageCopy(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkImageResolve(
     VulkanStreamGuest* vkStream,
     const VkImageResolve* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkMemoryBarrier* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkBufferMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkBufferMemoryBarrier* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkImageMemoryBarrier(
-    VulkanStreamGuest* vkStream,
-    const VkImageMemoryBarrier* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkRenderPassBeginInfo(
     VulkanStreamGuest* vkStream,
     const VkRenderPassBeginInfo* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkDispatchIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDispatchIndirectCommand* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkDrawIndexedIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndexedIndirectCommand* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkDrawIndirectCommand(
-    VulkanStreamGuest* vkStream,
-    const VkDrawIndirectCommand* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkBaseOutStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseOutStructure* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkBaseInStructure(
-    VulkanStreamGuest* vkStream,
-    const VkBaseInStructure* forMarshaling,
-    uint8_t** ptr);
-
 #endif
 #ifdef VK_VERSION_1_1
 void reservedmarshal_VkPhysicalDeviceSubgroupProperties(
@@ -776,11 +776,13 @@
     const VkPhysicalDeviceMultiviewProperties* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkPhysicalDeviceVariablePointerFeatures(
+void reservedmarshal_VkPhysicalDeviceVariablePointersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceVariablePointerFeatures* forMarshaling,
+    const VkPhysicalDeviceVariablePointersFeatures* forMarshaling,
     uint8_t** ptr);
 
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceVariablePointersFeatures, reservedmarshal_VkPhysicalDeviceVariablePointerFeatures);
+
 void reservedmarshal_VkPhysicalDeviceProtectedMemoryFeatures(
     VulkanStreamGuest* vkStream,
     const VkPhysicalDeviceProtectedMemoryFeatures* forMarshaling,
@@ -926,9 +928,268 @@
     const VkDescriptorSetLayoutSupport* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkPhysicalDeviceShaderDrawParameterFeatures(
+void reservedmarshal_VkPhysicalDeviceShaderDrawParametersFeatures(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderDrawParameterFeatures* forMarshaling,
+    const VkPhysicalDeviceShaderDrawParametersFeatures* forMarshaling,
+    uint8_t** ptr);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceShaderDrawParametersFeatures, reservedmarshal_VkPhysicalDeviceShaderDrawParameterFeatures);
+
+#endif
+#ifdef VK_VERSION_1_2
+void reservedmarshal_VkPhysicalDeviceVulkan11Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Features* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceVulkan11Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan11Properties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceVulkan12Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Features* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkConformanceVersion(
+    VulkanStreamGuest* vkStream,
+    const VkConformanceVersion* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceVulkan12Properties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkan12Properties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageFormatListCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageFormatListCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAttachmentDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescription2* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAttachmentReference2(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReference2* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSubpassDescription2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescription2* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSubpassDependency2(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDependency2* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRenderPassCreateInfo2(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassCreateInfo2* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSubpassBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassBeginInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSubpassEndInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassEndInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDevice8BitStorageFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice8BitStorageFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceDriverProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDriverProperties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceShaderAtomicInt64Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicInt64Features* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceFloatControlsProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFloatControlsProperties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetLayoutBindingFlagsCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceDescriptorIndexingProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDescriptorIndexingProperties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountAllocateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorSetVariableDescriptorCountLayoutSupport* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSubpassDescriptionDepthStencilResolve(
+    VulkanStreamGuest* vkStream,
+    const VkSubpassDescriptionDepthStencilResolve* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceDepthStencilResolveProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthStencilResolveProperties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceScalarBlockLayoutFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageStencilUsageCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkImageStencilUsageCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSamplerReductionModeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerReductionModeCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSamplerFilterMinmaxProperties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVulkanMemoryModelFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImagelessFramebufferFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkFramebufferAttachmentImageInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentImageInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkFramebufferAttachmentsCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferAttachmentsCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRenderPassAttachmentBeginInfo(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassAttachmentBeginInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceUniformBufferStandardLayoutFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAttachmentReferenceStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentReferenceStencilLayout* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAttachmentDescriptionStencilLayout(
+    VulkanStreamGuest* vkStream,
+    const VkAttachmentDescriptionStencilLayout* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceHostQueryResetFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceHostQueryResetFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceTimelineSemaphoreProperties(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTimelineSemaphoreProperties* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSemaphoreTypeCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreTypeCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkTimelineSemaphoreSubmitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkTimelineSemaphoreSubmitInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSemaphoreWaitInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreWaitInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSemaphoreSignalInfo(
+    VulkanStreamGuest* vkStream,
+    const VkSemaphoreSignalInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeatures* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferDeviceAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkBufferOpaqueCaptureAddressCreateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryOpaqueCaptureAddressAllocateInfo* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOpaqueCaptureAddressInfo* forMarshaling,
     uint8_t** ptr);
 
 #endif
@@ -987,26 +1248,21 @@
 
 #endif
 #ifdef VK_KHR_display
-void reservedmarshal_VkDisplayPropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayPropertiesKHR* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkDisplayModeParametersKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeParametersKHR* forMarshaling,
     uint8_t** ptr);
 
-void reservedmarshal_VkDisplayModePropertiesKHR(
-    VulkanStreamGuest* vkStream,
-    const VkDisplayModePropertiesKHR* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkDisplayModeCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayModeCreateInfoKHR* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkDisplayModePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayModePropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkDisplayPlaneCapabilitiesKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplayPlaneCapabilitiesKHR* forMarshaling,
@@ -1017,6 +1273,11 @@
     const VkDisplayPlanePropertiesKHR* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkDisplayPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayPropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkDisplaySurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
     const VkDisplaySurfaceCreateInfoKHR* forMarshaling,
@@ -1051,13 +1312,6 @@
     uint8_t** ptr);
 
 #endif
-#ifdef VK_KHR_mir_surface
-void reservedmarshal_VkMirSurfaceCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkMirSurfaceCreateInfoKHR* forMarshaling,
-    uint8_t** ptr);
-
-#endif
 #ifdef VK_KHR_android_surface
 void reservedmarshal_VkAndroidSurfaceCreateInfoKHR(
     VulkanStreamGuest* vkStream,
@@ -1075,20 +1329,80 @@
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
 #ifdef VK_KHR_multiview
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkRenderPassMultiviewCreateInfo, reservedmarshal_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceMultiviewFeatures, reservedmarshal_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceMultiviewProperties, reservedmarshal_VkPhysicalDeviceMultiviewPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceFeatures2, reservedmarshal_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceProperties2, reservedmarshal_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkFormatProperties2, reservedmarshal_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkImageFormatProperties2, reservedmarshal_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceImageFormatInfo2, reservedmarshal_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkQueueFamilyProperties2, reservedmarshal_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceMemoryProperties2, reservedmarshal_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSparseImageFormatProperties2, reservedmarshal_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceSparseImageFormatInfo2, reservedmarshal_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
 #endif
 #ifdef VK_KHR_device_group
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkMemoryAllocateFlagsInfo, reservedmarshal_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDeviceGroupRenderPassBeginInfo, reservedmarshal_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDeviceGroupCommandBufferBeginInfo, reservedmarshal_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDeviceGroupSubmitInfo, reservedmarshal_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDeviceGroupBindSparseInfo, reservedmarshal_VkDeviceGroupBindSparseInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBindBufferMemoryDeviceGroupInfo, reservedmarshal_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBindImageMemoryDeviceGroupInfo, reservedmarshal_VkBindImageMemoryDeviceGroupInfoKHR);
+
 #endif
 #ifdef VK_KHR_shader_draw_parameters
 #endif
 #ifdef VK_KHR_maintenance1
 #endif
 #ifdef VK_KHR_device_group_creation
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceGroupProperties, reservedmarshal_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDeviceGroupDeviceCreateInfo, reservedmarshal_VkDeviceGroupDeviceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_capabilities
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExternalMemoryProperties, reservedmarshal_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceExternalImageFormatInfo, reservedmarshal_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExternalImageFormatProperties, reservedmarshal_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceExternalBufferInfo, reservedmarshal_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExternalBufferProperties, reservedmarshal_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceIDProperties, reservedmarshal_VkPhysicalDeviceIDPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_memory
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExternalMemoryImageCreateInfo, reservedmarshal_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExternalMemoryBufferCreateInfo, reservedmarshal_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExportMemoryAllocateInfo, reservedmarshal_VkExportMemoryAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_win32
 void reservedmarshal_VkImportMemoryWin32HandleInfoKHR(
@@ -1137,8 +1451,14 @@
 
 #endif
 #ifdef VK_KHR_external_semaphore_capabilities
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceExternalSemaphoreInfo, reservedmarshal_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExternalSemaphoreProperties, reservedmarshal_VkExternalSemaphorePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExportSemaphoreCreateInfo, reservedmarshal_VkExportSemaphoreCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void reservedmarshal_VkImportSemaphoreWin32HandleInfoKHR(
@@ -1181,7 +1501,15 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features, reservedmarshal_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features, reservedmarshal_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+#endif
 #ifdef VK_KHR_16bit_storage
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDevice16BitStorageFeatures, reservedmarshal_VkPhysicalDevice16BitStorageFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_incremental_present
 void reservedmarshal_VkRectLayerKHR(
@@ -1201,42 +1529,35 @@
 
 #endif
 #ifdef VK_KHR_descriptor_update_template
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDescriptorUpdateTemplateEntry, reservedmarshal_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDescriptorUpdateTemplateCreateInfo, reservedmarshal_VkDescriptorUpdateTemplateCreateInfoKHR);
+
+#endif
+#ifdef VK_KHR_imageless_framebuffer
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeatures, reservedmarshal_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkFramebufferAttachmentsCreateInfo, reservedmarshal_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkFramebufferAttachmentImageInfo, reservedmarshal_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkRenderPassAttachmentBeginInfo, reservedmarshal_VkRenderPassAttachmentBeginInfoKHR);
+
 #endif
 #ifdef VK_KHR_create_renderpass2
-void reservedmarshal_VkAttachmentDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentDescription2KHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkRenderPassCreateInfo2, reservedmarshal_VkRenderPassCreateInfo2KHR);
 
-void reservedmarshal_VkAttachmentReference2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkAttachmentReference2KHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAttachmentDescription2, reservedmarshal_VkAttachmentDescription2KHR);
 
-void reservedmarshal_VkSubpassDescription2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDescription2KHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAttachmentReference2, reservedmarshal_VkAttachmentReference2KHR);
 
-void reservedmarshal_VkSubpassDependency2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassDependency2KHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSubpassDescription2, reservedmarshal_VkSubpassDescription2KHR);
 
-void reservedmarshal_VkRenderPassCreateInfo2KHR(
-    VulkanStreamGuest* vkStream,
-    const VkRenderPassCreateInfo2KHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSubpassDependency2, reservedmarshal_VkSubpassDependency2KHR);
 
-void reservedmarshal_VkSubpassBeginInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassBeginInfoKHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSubpassBeginInfo, reservedmarshal_VkSubpassBeginInfoKHR);
 
-void reservedmarshal_VkSubpassEndInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkSubpassEndInfoKHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSubpassEndInfo, reservedmarshal_VkSubpassEndInfoKHR);
 
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -1247,8 +1568,14 @@
 
 #endif
 #ifdef VK_KHR_external_fence_capabilities
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceExternalFenceInfo, reservedmarshal_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExternalFenceProperties, reservedmarshal_VkExternalFencePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_fence
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkExportFenceCreateInfo, reservedmarshal_VkExportFenceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_fence_win32
 void reservedmarshal_VkImportFenceWin32HandleInfoKHR(
@@ -1279,7 +1606,59 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_KHR_performance_query
+void reservedmarshal_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePerformanceQueryPropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceCounterKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceCounterDescriptionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterDescriptionKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkQueryPoolPerformanceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceCounterResultKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceCounterResultKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAcquireProfilingLockInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAcquireProfilingLockInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceQuerySubmitInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceQuerySubmitInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_KHR_maintenance2
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDevicePointClippingProperties, reservedmarshal_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkRenderPassInputAttachmentAspectCreateInfo, reservedmarshal_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkInputAttachmentAspectReference, reservedmarshal_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkImageViewUsageCreateInfo, reservedmarshal_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPipelineTessellationDomainOriginStateCreateInfo, reservedmarshal_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void reservedmarshal_VkPhysicalDeviceSurfaceInfo2KHR(
@@ -1299,6 +1678,10 @@
 
 #endif
 #ifdef VK_KHR_variable_pointers
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceVariablePointersFeatures, reservedmarshal_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceVariablePointersFeatures, reservedmarshal_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_get_display_properties2
 void reservedmarshal_VkDisplayProperties2KHR(
@@ -1328,39 +1711,295 @@
 
 #endif
 #ifdef VK_KHR_dedicated_allocation
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkMemoryDedicatedRequirements, reservedmarshal_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkMemoryDedicatedAllocateInfo, reservedmarshal_VkMemoryDedicatedAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_storage_buffer_storage_class
 #endif
 #ifdef VK_KHR_relaxed_block_layout
 #endif
 #ifdef VK_KHR_get_memory_requirements2
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBufferMemoryRequirementsInfo2, reservedmarshal_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkImageMemoryRequirementsInfo2, reservedmarshal_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkImageSparseMemoryRequirementsInfo2, reservedmarshal_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkMemoryRequirements2, reservedmarshal_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSparseImageMemoryRequirements2, reservedmarshal_VkSparseImageMemoryRequirements2KHR);
+
 #endif
 #ifdef VK_KHR_image_format_list
-void reservedmarshal_VkImageFormatListCreateInfoKHR(
-    VulkanStreamGuest* vkStream,
-    const VkImageFormatListCreateInfoKHR* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkImageFormatListCreateInfo, reservedmarshal_VkImageFormatListCreateInfoKHR);
 
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSamplerYcbcrConversionCreateInfo, reservedmarshal_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSamplerYcbcrConversionInfo, reservedmarshal_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBindImagePlaneMemoryInfo, reservedmarshal_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkImagePlaneMemoryRequirementsInfo, reservedmarshal_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeatures, reservedmarshal_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSamplerYcbcrConversionImageFormatProperties, reservedmarshal_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_bind_memory2
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBindBufferMemoryInfo, reservedmarshal_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBindImageMemoryInfo, reservedmarshal_VkBindImageMemoryInfoKHR);
+
 #endif
-#ifdef VK_KHR_maintenance3
-#endif
-#ifdef VK_KHR_draw_indirect_count
-#endif
-#ifdef VK_KHR_8bit_storage
-void reservedmarshal_VkPhysicalDevice8BitStorageFeaturesKHR(
+#ifdef VK_KHR_portability_subset
+void reservedmarshal_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDevice8BitStorageFeaturesKHR* forMarshaling,
+    const VkPhysicalDevicePortabilitySubsetFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePortabilitySubsetPropertiesKHR* forMarshaling,
     uint8_t** ptr);
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void reservedmarshal_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_maintenance3
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceMaintenance3Properties, reservedmarshal_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDescriptorSetLayoutSupport, reservedmarshal_VkDescriptorSetLayoutSupportKHR);
+
+#endif
+#ifdef VK_KHR_draw_indirect_count
+#endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, reservedmarshal_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_8bit_storage
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDevice8BitStorageFeatures, reservedmarshal_VkPhysicalDevice8BitStorageFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceShaderAtomicInt64Features, reservedmarshal_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_clock
+void reservedmarshal_VkPhysicalDeviceShaderClockFeaturesKHR(
     VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceShaderFloat16Int8Features* forMarshaling,
+    const VkPhysicalDeviceShaderClockFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_driver_properties
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkConformanceVersion, reservedmarshal_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceDriverProperties, reservedmarshal_VkPhysicalDeviceDriverPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_shader_float_controls
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceFloatControlsProperties, reservedmarshal_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSubpassDescriptionDepthStencilResolve, reservedmarshal_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceDepthStencilResolveProperties, reservedmarshal_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeatures, reservedmarshal_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceTimelineSemaphoreProperties, reservedmarshal_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSemaphoreTypeCreateInfo, reservedmarshal_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkTimelineSemaphoreSubmitInfo, reservedmarshal_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSemaphoreWaitInfo, reservedmarshal_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSemaphoreSignalInfo, reservedmarshal_VkSemaphoreSignalInfoKHR);
+
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeatures, reservedmarshal_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void reservedmarshal_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void reservedmarshal_VkFragmentShadingRateAttachmentInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkFragmentShadingRateAttachmentInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateStateCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRatePropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void reservedmarshal_VkSurfaceProtectedCapabilitiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceProtectedCapabilitiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, reservedmarshal_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAttachmentReferenceStencilLayout, reservedmarshal_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAttachmentDescriptionStencilLayout, reservedmarshal_VkAttachmentDescriptionStencilLayoutKHR);
+
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, reservedmarshal_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_buffer_device_address
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeatures, reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBufferDeviceAddressInfo, reservedmarshal_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfo, reservedmarshal_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfo, reservedmarshal_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfo, reservedmarshal_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void reservedmarshal_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineExecutablePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutablePropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineExecutableInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineExecutableStatisticValueKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticValueKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineExecutableStatisticKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableStatisticKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineExecutableInternalRepresentationKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineExecutableInternalRepresentationKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void reservedmarshal_VkPipelineLibraryCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineLibraryCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void reservedmarshal_VkBufferCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferCopy2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCopyBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferInfo2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageCopy2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCopyImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageInfo2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBufferImageCopy2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBufferImageCopy2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCopyBufferToImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyBufferToImageInfo2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCopyImageToBufferInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyImageToBufferInfo2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageBlit2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageBlit2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBlitImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkBlitImageInfo2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageResolve2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkImageResolve2KHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkResolveImageInfo2KHR(
+    VulkanStreamGuest* vkStream,
+    const VkResolveImageInfo2KHR* forMarshaling,
     uint8_t** ptr);
 
 #endif
@@ -1431,6 +2070,35 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void reservedmarshal_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTransformFeedbackPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationStateStreamCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void reservedmarshal_VkImageViewHandleInfoNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewHandleInfoNVX* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageViewAddressPropertiesNVX(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewAddressPropertiesNVX* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -1460,6 +2128,20 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void reservedmarshal_VkStreamDescriptorSurfaceCreateInfoGGP(
+    VulkanStreamGuest* vkStream,
+    const VkStreamDescriptorSurfaceCreateInfoGGP* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void reservedmarshal_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCornerSampledImageFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -1518,6 +2200,25 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void reservedmarshal_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void reservedmarshal_VkImageViewASTCDecodeModeEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageViewASTCDecodeModeEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceASTCDecodeFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void reservedmarshal_VkConditionalRenderingBeginInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -1535,78 +2236,6 @@
     uint8_t** ptr);
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void reservedmarshal_VkDeviceGeneratedCommandsFeaturesNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsFeaturesNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkDeviceGeneratedCommandsLimitsNVX(
-    VulkanStreamGuest* vkStream,
-    const VkDeviceGeneratedCommandsLimitsNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkIndirectCommandsTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsTokenNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkIndirectCommandsLayoutTokenNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutTokenNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkIndirectCommandsLayoutCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkIndirectCommandsLayoutCreateInfoNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkCmdProcessCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdProcessCommandsInfoNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkCmdReserveSpaceForCommandsInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkCmdReserveSpaceForCommandsInfoNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkObjectTableCreateInfoNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableCreateInfoNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkObjectTableEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableEntryNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkObjectTablePipelineEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePipelineEntryNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkObjectTableDescriptorSetEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableDescriptorSetEntryNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkObjectTableVertexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableVertexBufferEntryNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkObjectTableIndexBufferEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTableIndexBufferEntryNVX* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkObjectTablePushConstantEntryNVX(
-    VulkanStreamGuest* vkStream,
-    const VkObjectTablePushConstantEntryNVX* forMarshaling,
-    uint8_t** ptr);
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void reservedmarshal_VkViewportWScalingNV(
     VulkanStreamGuest* vkStream,
@@ -1723,6 +2352,18 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void reservedmarshal_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDepthClipEnableFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationDepthClipStateCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -1751,26 +2392,23 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void reservedmarshal_VkDebugUtilsObjectNameInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsObjectNameInfoEXT* forMarshaling,
-    uint8_t** ptr);
-
-void reservedmarshal_VkDebugUtilsObjectTagInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDebugUtilsObjectTagInfoEXT* forMarshaling,
-    uint8_t** ptr);
-
 void reservedmarshal_VkDebugUtilsLabelEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsLabelEXT* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkDebugUtilsObjectNameInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsObjectNameInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
 void reservedmarshal_VkDebugUtilsMessengerCallbackDataEXT(
     VulkanStreamGuest* vkStream,
     const VkDebugUtilsMessengerCallbackDataEXT* forMarshaling,
@@ -1781,6 +2419,11 @@
     const VkDebugUtilsMessengerCreateInfoEXT* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkDebugUtilsObjectTagInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDebugUtilsObjectTagInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void reservedmarshal_VkAndroidHardwareBufferUsageANDROID(
@@ -1815,15 +2458,9 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void reservedmarshal_VkSamplerReductionModeCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkSamplerReductionModeCreateInfoEXT* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkSamplerReductionModeCreateInfo, reservedmarshal_VkSamplerReductionModeCreateInfoEXT);
 
-void reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxProperties, reservedmarshal_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
 #endif
 #ifdef VK_AMD_gpu_shader_int16
@@ -1832,6 +2469,28 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void reservedmarshal_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceInlineUniformBlockPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkWriteDescriptorSetInlineUniformBlockEXT(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetInlineUniformBlockEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDescriptorPoolInlineUniformBlockCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -1909,8 +2568,52 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void reservedmarshal_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void reservedmarshal_VkDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDrmFormatModifierPropertiesListEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDrmFormatModifierPropertiesListEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageDrmFormatModifierInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageDrmFormatModifierListCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierListCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierExplicitCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkImageDrmFormatModifierPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkImageDrmFormatModifierPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_validation_cache
 void reservedmarshal_VkValidationCacheCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -1924,34 +2627,165 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfo, reservedmarshal_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingFeaturesEXT* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeatures, reservedmarshal_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void reservedmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    VulkanStreamGuest* vkStream,
-    const VkPhysicalDeviceDescriptorIndexingPropertiesEXT* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceDescriptorIndexingProperties, reservedmarshal_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfo, reservedmarshal_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    VulkanStreamGuest* vkStream,
-    const VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* forMarshaling,
-    uint8_t** ptr);
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupport, reservedmarshal_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+void reservedmarshal_VkShadingRatePaletteNV(
+    VulkanStreamGuest* vkStream,
+    const VkShadingRatePaletteNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportShadingRateImageStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShadingRateImageFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShadingRateImagePropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCoarseSampleLocationNV(
+    VulkanStreamGuest* vkStream,
+    const VkCoarseSampleLocationNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCoarseSampleOrderCustomNV(
+    VulkanStreamGuest* vkStream,
+    const VkCoarseSampleOrderCustomNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_ray_tracing
+void reservedmarshal_VkRayTracingShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRayTracingPipelineCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGeometryTrianglesNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryTrianglesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGeometryAABBNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryAABBNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGeometryDataNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryDataNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGeometryNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeometryNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBindAccelerationStructureMemoryInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindAccelerationStructureMemoryInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkWriteDescriptorSetAccelerationStructureNV(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureMemoryRequirementsInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceRayTracingPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkTransformMatrixKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTransformMatrixKHR* forMarshaling,
+    uint8_t** ptr);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkTransformMatrixKHR, reservedmarshal_VkTransformMatrixNV);
+
+void reservedmarshal_VkAabbPositionsKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAabbPositionsKHR* forMarshaling,
+    uint8_t** ptr);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAabbPositionsKHR, reservedmarshal_VkAabbPositionsNV);
+
+void reservedmarshal_VkAccelerationStructureInstanceKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureInstanceKHR* forMarshaling,
+    uint8_t** ptr);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkAccelerationStructureInstanceKHR, reservedmarshal_VkAccelerationStructureInstanceNV);
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void reservedmarshal_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRepresentativeFragmentTestStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void reservedmarshal_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageViewImageFormatInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkFilterCubicImageViewImageFormatPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 void reservedmarshal_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     VulkanStreamGuest* vkStream,
@@ -1978,6 +2812,20 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void reservedmarshal_VkPipelineCompilerControlCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCompilerControlCreateInfoAMD* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void reservedmarshal_VkCalibratedTimestampInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkCalibratedTimestampInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void reservedmarshal_VkPhysicalDeviceShaderCorePropertiesAMD(
     VulkanStreamGuest* vkStream,
@@ -1985,6 +2833,13 @@
     uint8_t** ptr);
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void reservedmarshal_VkDeviceMemoryOverallocationCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryOverallocationCreateInfoAMD* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     VulkanStreamGuest* vkStream,
@@ -2001,9 +2856,83 @@
     const VkPipelineVertexInputDivisorStateCreateInfoEXT* forMarshaling,
     uint8_t** ptr);
 
+void reservedmarshal_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_GGP_frame_token
+void reservedmarshal_VkPresentFrameTokenGGP(
+    VulkanStreamGuest* vkStream,
+    const VkPresentFrameTokenGGP* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void reservedmarshal_VkPipelineCreationFeedbackEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineCreationFeedbackCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCreationFeedbackCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void reservedmarshal_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_mesh_shader
+void reservedmarshal_VkPhysicalDeviceMeshShaderFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceMeshShaderPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMeshShaderPropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDrawMeshTasksIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkDrawMeshTasksIndirectCommandNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void reservedmarshal_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void reservedmarshal_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageFootprintFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void reservedmarshal_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineViewportExclusiveScissorStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExclusiveScissorFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void reservedmarshal_VkQueueFamilyCheckpointPropertiesNV(
     VulkanStreamGuest* vkStream,
@@ -2016,7 +2945,89 @@
     uint8_t** ptr);
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void reservedmarshal_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_INTEL_performance_query
+void reservedmarshal_VkPerformanceValueDataINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueDataINTEL* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceValueINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceValueINTEL* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkInitializePerformanceApiInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkInitializePerformanceApiInfoINTEL* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkQueryPoolPerformanceQueryCreateInfoINTEL* forMarshaling,
+    uint8_t** ptr);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkQueryPoolPerformanceQueryCreateInfoINTEL, reservedmarshal_VkQueryPoolCreateInfoINTEL);
+
+void reservedmarshal_VkPerformanceMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceMarkerInfoINTEL* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceStreamMarkerInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceStreamMarkerInfoINTEL* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceOverrideInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceOverrideInfoINTEL* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPerformanceConfigurationAcquireInfoINTEL(
+    VulkanStreamGuest* vkStream,
+    const VkPerformanceConfigurationAcquireInfoINTEL* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void reservedmarshal_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePCIBusInfoPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void reservedmarshal_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkDisplayNativeHdrSurfaceCapabilitiesAMD* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    VulkanStreamGuest* vkStream,
+    const VkSwapchainDisplayNativeHdrCreateInfoAMD* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void reservedmarshal_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    VulkanStreamGuest* vkStream,
+    const VkImagePipeSurfaceCreateInfoFUCHSIA* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_metal_surface
+void reservedmarshal_VkMetalSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMetalSurfaceCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void reservedmarshal_VkImportColorBufferGOOGLE(
@@ -2035,23 +3046,609 @@
     uint8_t** ptr);
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeatures, reservedmarshal_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void reservedmarshal_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void reservedmarshal_VkPhysicalDeviceShaderCoreProperties2AMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderCoreProperties2AMD* forMarshaling,
+    uint8_t** ptr);
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void reservedmarshal_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoherentMemoryFeaturesAMD* forMarshaling,
+    uint8_t** ptr);
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void reservedmarshal_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void reservedmarshal_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryBudgetPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void reservedmarshal_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceMemoryPriorityFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkMemoryPriorityAllocateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkMemoryPriorityAllocateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void reservedmarshal_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, reservedmarshal_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkBufferDeviceAddressInfo, reservedmarshal_VkBufferDeviceAddressInfoEXT);
+
+void reservedmarshal_VkBufferDeviceAddressCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkBufferDeviceAddressCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_tooling_info
+void reservedmarshal_VkPhysicalDeviceToolPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceToolPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkImageStencilUsageCreateInfo, reservedmarshal_VkImageStencilUsageCreateInfoEXT);
+
+#endif
+#ifdef VK_EXT_validation_features
+void reservedmarshal_VkValidationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkValidationFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void reservedmarshal_VkCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkCooperativeMatrixPropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCooperativeMatrixPropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void reservedmarshal_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCoverageReductionModeFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineCoverageReductionStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineCoverageReductionStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkFramebufferMixedSamplesCombinationNV(
+    VulkanStreamGuest* vkStream,
+    const VkFramebufferMixedSamplesCombinationNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void reservedmarshal_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void reservedmarshal_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void reservedmarshal_VkSurfaceFullScreenExclusiveInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceCapabilitiesFullScreenExclusiveEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSurfaceFullScreenExclusiveWin32InfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_headless_surface
+void reservedmarshal_VkHeadlessSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkHeadlessSurfaceCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void reservedmarshal_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceLineRasterizationPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineRasterizationLineStateCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineRasterizationLineStateCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void reservedmarshal_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_host_query_reset
+DEFINE_ALIAS_FUNCTION(reservedmarshal_VkPhysicalDeviceHostQueryResetFeatures, reservedmarshal_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+#endif
+#ifdef VK_EXT_index_type_uint8
+void reservedmarshal_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceIndexTypeUint8FeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void reservedmarshal_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void reservedmarshal_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void reservedmarshal_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGraphicsShaderGroupCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsShaderGroupCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGraphicsPipelineShaderGroupsCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBindShaderGroupIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindShaderGroupIndirectCommandNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBindIndexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindIndexBufferIndirectCommandNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkBindVertexBufferIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkBindVertexBufferIndirectCommandNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkSetStateFlagsIndirectCommandNV(
+    VulkanStreamGuest* vkStream,
+    const VkSetStateFlagsIndirectCommandNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkIndirectCommandsStreamNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsStreamNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkIndirectCommandsLayoutTokenNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutTokenNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkIndirectCommandsLayoutCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkIndirectCommandsLayoutCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGeneratedCommandsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkGeneratedCommandsMemoryRequirementsInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void reservedmarshal_VkRenderPassTransformBeginInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkRenderPassTransformBeginInfoQCOM* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCommandBufferInheritanceRenderPassTransformInfoQCOM* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void reservedmarshal_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDeviceMemoryReportCallbackDataEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceMemoryReportCallbackDataEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDeviceMemoryReportCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_robustness2
+void reservedmarshal_VkPhysicalDeviceRobustness2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2FeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceRobustness2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRobustness2PropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void reservedmarshal_VkSamplerCustomBorderColorCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkSamplerCustomBorderColorCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorPropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceCustomBorderColorFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void reservedmarshal_VkPhysicalDevicePrivateDataFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePrivateDataFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDevicePrivateDataCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDevicePrivateDataCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPrivateDataSlotCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPrivateDataSlotCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void reservedmarshal_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void reservedmarshal_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceDiagnosticsConfigFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDeviceDiagnosticsConfigCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceDiagnosticsConfigCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    VulkanStreamGuest* vkStream,
+    const VkPipelineFragmentShadingRateEnumStateCreateInfoNV* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void reservedmarshal_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void reservedmarshal_VkCopyCommandTransformInfoQCOM(
+    VulkanStreamGuest* vkStream,
+    const VkCopyCommandTransformInfoQCOM* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_image_robustness
+void reservedmarshal_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceImageRobustnessFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_4444_formats
+void reservedmarshal_VkPhysicalDevice4444FormatsFeaturesEXT(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDevice4444FormatsFeaturesEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void reservedmarshal_VkDirectFBSurfaceCreateInfoEXT(
+    VulkanStreamGuest* vkStream,
+    const VkDirectFBSurfaceCreateInfoEXT* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void reservedmarshal_VkDeviceOrHostAddressKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkDeviceOrHostAddressConstKHR(
+    VulkanStreamGuest* vkStream,
+    const VkDeviceOrHostAddressConstKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureBuildRangeInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildRangeInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureGeometryTrianglesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryTrianglesDataKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureGeometryAabbsDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryAabbsDataKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureGeometryInstancesDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryInstancesDataKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureGeometryDataKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryDataKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureGeometryKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureGeometryKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureBuildGeometryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildGeometryInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkWriteDescriptorSetAccelerationStructureKHR(
+    VulkanStreamGuest* vkStream,
+    const VkWriteDescriptorSetAccelerationStructureKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructureFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceAccelerationStructurePropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureDeviceAddressInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureDeviceAddressInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureVersionInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureVersionInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCopyAccelerationStructureToMemoryInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureToMemoryInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCopyMemoryToAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyMemoryToAccelerationStructureInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkCopyAccelerationStructureInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkCopyAccelerationStructureInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkAccelerationStructureBuildSizesInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkAccelerationStructureBuildSizesInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void reservedmarshal_VkRayTracingShaderGroupCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingShaderGroupCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineInterfaceCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkRayTracingPipelineCreateInfoKHR(
+    VulkanStreamGuest* vkStream,
+    const VkRayTracingPipelineCreateInfoKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelineFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayTracingPipelinePropertiesKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkStridedDeviceAddressRegionKHR(
+    VulkanStreamGuest* vkStream,
+    const VkStridedDeviceAddressRegionKHR* forMarshaling,
+    uint8_t** ptr);
+
+void reservedmarshal_VkTraceRaysIndirectCommandKHR(
+    VulkanStreamGuest* vkStream,
+    const VkTraceRaysIndirectCommandKHR* forMarshaling,
+    uint8_t** ptr);
+
+#endif
+#ifdef VK_KHR_ray_query
+void reservedmarshal_VkPhysicalDeviceRayQueryFeaturesKHR(
+    VulkanStreamGuest* vkStream,
+    const VkPhysicalDeviceRayQueryFeaturesKHR* forMarshaling,
+    uint8_t** ptr);
+
 #endif
 
 } // namespace goldfish_vk
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.cpp b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
index 3b89d7c..41bc633 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.cpp
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.cpp
@@ -42,6 +42,292 @@
     void* structExtension_out);
 
 #ifdef VK_VERSION_1_0
+void transform_tohost_VkExtent2D(
+    ResourceTracker* resourceTracker,
+    VkExtent2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkExtent2D(
+    ResourceTracker* resourceTracker,
+    VkExtent2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkExtent3D(
+    ResourceTracker* resourceTracker,
+    VkExtent3D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkExtent3D(
+    ResourceTracker* resourceTracker,
+    VkExtent3D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkOffset2D(
+    ResourceTracker* resourceTracker,
+    VkOffset2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkOffset2D(
+    ResourceTracker* resourceTracker,
+    VkOffset2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkOffset3D(
+    ResourceTracker* resourceTracker,
+    VkOffset3D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkOffset3D(
+    ResourceTracker* resourceTracker,
+    VkOffset3D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkRect2D(
+    ResourceTracker* resourceTracker,
+    VkRect2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
+}
+
+void transform_fromhost_VkRect2D(
+    ResourceTracker* resourceTracker,
+    VkRect2D* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkBaseInStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseInStructure* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBaseInStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseInStructure* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBaseOutStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseOutStructure* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBaseOutStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseOutStructure* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDispatchIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDispatchIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDispatchIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDispatchIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDrawIndexedIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndexedIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDrawIndexedIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndexedIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDrawIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDrawIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndirectCommand* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageSubresourceRange(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceRange* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkImageSubresourceRange(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceRange* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
+}
+
+void transform_fromhost_VkImageMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
+}
+
+void transform_tohost_VkMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAllocationCallbacks(
+    ResourceTracker* resourceTracker,
+    VkAllocationCallbacks* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkAllocationCallbacks(
+    ResourceTracker* resourceTracker,
+    VkAllocationCallbacks* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
 void transform_tohost_VkApplicationInfo(
     ResourceTracker* resourceTracker,
     VkApplicationInfo* toTransform)
@@ -66,6 +352,40 @@
     }
 }
 
+void transform_tohost_VkFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkImageFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->maxExtent));
+}
+
+void transform_fromhost_VkImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkImageFormatProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->maxExtent));
+}
+
 void transform_tohost_VkInstanceCreateInfo(
     ResourceTracker* resourceTracker,
     VkInstanceCreateInfo* toTransform)
@@ -98,17 +418,33 @@
     }
 }
 
-void transform_tohost_VkAllocationCallbacks(
+void transform_tohost_VkMemoryHeap(
     ResourceTracker* resourceTracker,
-    VkAllocationCallbacks* toTransform)
+    VkMemoryHeap* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
 }
 
-void transform_fromhost_VkAllocationCallbacks(
+void transform_fromhost_VkMemoryHeap(
     ResourceTracker* resourceTracker,
-    VkAllocationCallbacks* toTransform)
+    VkMemoryHeap* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkMemoryType(
+    ResourceTracker* resourceTracker,
+    VkMemoryType* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkMemoryType(
+    ResourceTracker* resourceTracker,
+    VkMemoryType* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -130,56 +466,6 @@
     (void)toTransform;
 }
 
-void transform_tohost_VkFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkFormatProperties* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkFormatProperties* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkExtent3D(
-    ResourceTracker* resourceTracker,
-    VkExtent3D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkExtent3D(
-    ResourceTracker* resourceTracker,
-    VkExtent3D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkImageFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkImageFormatProperties* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->maxExtent));
-}
-
-void transform_fromhost_VkImageFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkImageFormatProperties* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->maxExtent));
-}
-
 void transform_tohost_VkPhysicalDeviceLimits(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceLimits* toTransform)
@@ -196,6 +482,38 @@
     (void)toTransform;
 }
 
+void transform_tohost_VkPhysicalDeviceMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        transform_tohost_VkMemoryType(resourceTracker, (VkMemoryType*)(toTransform->memoryTypes + i));
+    }
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        transform_tohost_VkMemoryHeap(resourceTracker, (VkMemoryHeap*)(toTransform->memoryHeaps + i));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
+    {
+        transform_fromhost_VkMemoryType(resourceTracker, (VkMemoryType*)(toTransform->memoryTypes + i));
+    }
+    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
+    {
+        transform_fromhost_VkMemoryHeap(resourceTracker, (VkMemoryHeap*)(toTransform->memoryHeaps + i));
+    }
+}
+
 void transform_tohost_VkPhysicalDeviceSparseProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSparseProperties* toTransform)
@@ -250,70 +568,6 @@
     transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->minImageTransferGranularity));
 }
 
-void transform_tohost_VkMemoryType(
-    ResourceTracker* resourceTracker,
-    VkMemoryType* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkMemoryType(
-    ResourceTracker* resourceTracker,
-    VkMemoryType* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkMemoryHeap(
-    ResourceTracker* resourceTracker,
-    VkMemoryHeap* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkMemoryHeap(
-    ResourceTracker* resourceTracker,
-    VkMemoryHeap* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkPhysicalDeviceMemoryProperties(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceMemoryProperties* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        transform_tohost_VkMemoryType(resourceTracker, (VkMemoryType*)(toTransform->memoryTypes + i));
-    }
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        transform_tohost_VkMemoryHeap(resourceTracker, (VkMemoryHeap*)(toTransform->memoryHeaps + i));
-    }
-}
-
-void transform_fromhost_VkPhysicalDeviceMemoryProperties(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceMemoryProperties* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_TYPES; ++i)
-    {
-        transform_fromhost_VkMemoryType(resourceTracker, (VkMemoryType*)(toTransform->memoryTypes + i));
-    }
-    for (uint32_t i = 0; i < (uint32_t)VK_MAX_MEMORY_HEAPS; ++i)
-    {
-        transform_fromhost_VkMemoryHeap(resourceTracker, (VkMemoryHeap*)(toTransform->memoryHeaps + i));
-    }
-}
-
 void transform_tohost_VkDeviceQueueCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceQueueCreateInfo* toTransform)
@@ -348,11 +602,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pQueueCreateInfos)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->queueCreateInfoCount; ++i)
+        if (toTransform->pQueueCreateInfos)
         {
-            transform_tohost_VkDeviceQueueCreateInfo(resourceTracker, (VkDeviceQueueCreateInfo*)(toTransform->pQueueCreateInfos + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->queueCreateInfoCount; ++i)
+            {
+                transform_tohost_VkDeviceQueueCreateInfo(resourceTracker, (VkDeviceQueueCreateInfo*)(toTransform->pQueueCreateInfos + i));
+            }
         }
     }
     if (toTransform->pEnabledFeatures)
@@ -371,11 +628,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pQueueCreateInfos)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->queueCreateInfoCount; ++i)
+        if (toTransform->pQueueCreateInfos)
         {
-            transform_fromhost_VkDeviceQueueCreateInfo(resourceTracker, (VkDeviceQueueCreateInfo*)(toTransform->pQueueCreateInfos + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->queueCreateInfoCount; ++i)
+            {
+                transform_fromhost_VkDeviceQueueCreateInfo(resourceTracker, (VkDeviceQueueCreateInfo*)(toTransform->pQueueCreateInfos + i));
+            }
         }
     }
     if (toTransform->pEnabledFeatures)
@@ -440,32 +700,6 @@
     }
 }
 
-void transform_tohost_VkMemoryAllocateInfo(
-    ResourceTracker* resourceTracker,
-    VkMemoryAllocateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeIndex, 1, (uint32_t*)nullptr, 0);
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkMemoryAllocateInfo(
-    ResourceTracker* resourceTracker,
-    VkMemoryAllocateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeIndex, 1, (uint32_t*)nullptr, 0);
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 void transform_tohost_VkMappedMemoryRange(
     ResourceTracker* resourceTracker,
     VkMappedMemoryRange* toTransform)
@@ -492,6 +726,32 @@
     }
 }
 
+void transform_tohost_VkMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeIndex, 1, (uint32_t*)nullptr, 0);
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeIndex, 1, (uint32_t*)nullptr, 0);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 void transform_tohost_VkMemoryRequirements(
     ResourceTracker* resourceTracker,
     VkMemoryRequirements* toTransform)
@@ -510,6 +770,256 @@
     resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)&toTransform->memoryTypeBits, 1);
 }
 
+void transform_tohost_VkSparseMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseMemoryBind* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+}
+
+void transform_fromhost_VkSparseMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseMemoryBind* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+}
+
+void transform_tohost_VkSparseBufferMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseBufferMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+            {
+                transform_tohost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkSparseBufferMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseBufferMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+            {
+                transform_fromhost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkSparseImageOpaqueMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageOpaqueMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+            {
+                transform_tohost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkSparseImageOpaqueMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageOpaqueMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+            {
+                transform_fromhost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkImageSubresource(
+    ResourceTracker* resourceTracker,
+    VkImageSubresource* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkImageSubresource(
+    ResourceTracker* resourceTracker,
+    VkImageSubresource* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkSparseImageMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBind* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    transform_tohost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_fromhost_VkSparseImageMemoryBind(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBind* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    transform_fromhost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkSparseImageMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+            {
+                transform_tohost_VkSparseImageMemoryBind(resourceTracker, (VkSparseImageMemoryBind*)(toTransform->pBinds + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkSparseImageMemoryBindInfo(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryBindInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
+            {
+                transform_fromhost_VkSparseImageMemoryBind(resourceTracker, (VkSparseImageMemoryBind*)(toTransform->pBinds + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkBindSparseInfo(
+    ResourceTracker* resourceTracker,
+    VkBindSparseInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBufferBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bufferBindCount; ++i)
+            {
+                transform_tohost_VkSparseBufferMemoryBindInfo(resourceTracker, (VkSparseBufferMemoryBindInfo*)(toTransform->pBufferBinds + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pImageOpaqueBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->imageOpaqueBindCount; ++i)
+            {
+                transform_tohost_VkSparseImageOpaqueMemoryBindInfo(resourceTracker, (VkSparseImageOpaqueMemoryBindInfo*)(toTransform->pImageOpaqueBinds + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pImageBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->imageBindCount; ++i)
+            {
+                transform_tohost_VkSparseImageMemoryBindInfo(resourceTracker, (VkSparseImageMemoryBindInfo*)(toTransform->pImageBinds + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkBindSparseInfo(
+    ResourceTracker* resourceTracker,
+    VkBindSparseInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pBufferBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bufferBindCount; ++i)
+            {
+                transform_fromhost_VkSparseBufferMemoryBindInfo(resourceTracker, (VkSparseBufferMemoryBindInfo*)(toTransform->pBufferBinds + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pImageOpaqueBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->imageOpaqueBindCount; ++i)
+            {
+                transform_fromhost_VkSparseImageOpaqueMemoryBindInfo(resourceTracker, (VkSparseImageOpaqueMemoryBindInfo*)(toTransform->pImageOpaqueBinds + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pImageBinds)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->imageBindCount; ++i)
+            {
+                transform_fromhost_VkSparseImageMemoryBindInfo(resourceTracker, (VkSparseImageMemoryBindInfo*)(toTransform->pImageBinds + i));
+            }
+        }
+    }
+}
+
 void transform_tohost_VkSparseImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkSparseImageFormatProperties* toTransform)
@@ -546,236 +1056,6 @@
     transform_fromhost_VkSparseImageFormatProperties(resourceTracker, (VkSparseImageFormatProperties*)(&toTransform->formatProperties));
 }
 
-void transform_tohost_VkSparseMemoryBind(
-    ResourceTracker* resourceTracker,
-    VkSparseMemoryBind* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
-}
-
-void transform_fromhost_VkSparseMemoryBind(
-    ResourceTracker* resourceTracker,
-    VkSparseMemoryBind* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
-}
-
-void transform_tohost_VkSparseBufferMemoryBindInfo(
-    ResourceTracker* resourceTracker,
-    VkSparseBufferMemoryBindInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
-        {
-            transform_tohost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
-        }
-    }
-}
-
-void transform_fromhost_VkSparseBufferMemoryBindInfo(
-    ResourceTracker* resourceTracker,
-    VkSparseBufferMemoryBindInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
-        {
-            transform_fromhost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
-        }
-    }
-}
-
-void transform_tohost_VkSparseImageOpaqueMemoryBindInfo(
-    ResourceTracker* resourceTracker,
-    VkSparseImageOpaqueMemoryBindInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
-        {
-            transform_tohost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
-        }
-    }
-}
-
-void transform_fromhost_VkSparseImageOpaqueMemoryBindInfo(
-    ResourceTracker* resourceTracker,
-    VkSparseImageOpaqueMemoryBindInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
-        {
-            transform_fromhost_VkSparseMemoryBind(resourceTracker, (VkSparseMemoryBind*)(toTransform->pBinds + i));
-        }
-    }
-}
-
-void transform_tohost_VkImageSubresource(
-    ResourceTracker* resourceTracker,
-    VkImageSubresource* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkImageSubresource(
-    ResourceTracker* resourceTracker,
-    VkImageSubresource* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkOffset3D(
-    ResourceTracker* resourceTracker,
-    VkOffset3D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkOffset3D(
-    ResourceTracker* resourceTracker,
-    VkOffset3D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkSparseImageMemoryBind(
-    ResourceTracker* resourceTracker,
-    VkSparseImageMemoryBind* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
-    transform_tohost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
-    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
-    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
-}
-
-void transform_fromhost_VkSparseImageMemoryBind(
-    ResourceTracker* resourceTracker,
-    VkSparseImageMemoryBind* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
-    transform_fromhost_VkImageSubresource(resourceTracker, (VkImageSubresource*)(&toTransform->subresource));
-    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->offset));
-    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
-}
-
-void transform_tohost_VkSparseImageMemoryBindInfo(
-    ResourceTracker* resourceTracker,
-    VkSparseImageMemoryBindInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
-        {
-            transform_tohost_VkSparseImageMemoryBind(resourceTracker, (VkSparseImageMemoryBind*)(toTransform->pBinds + i));
-        }
-    }
-}
-
-void transform_fromhost_VkSparseImageMemoryBindInfo(
-    ResourceTracker* resourceTracker,
-    VkSparseImageMemoryBindInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindCount; ++i)
-        {
-            transform_fromhost_VkSparseImageMemoryBind(resourceTracker, (VkSparseImageMemoryBind*)(toTransform->pBinds + i));
-        }
-    }
-}
-
-void transform_tohost_VkBindSparseInfo(
-    ResourceTracker* resourceTracker,
-    VkBindSparseInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pBufferBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bufferBindCount; ++i)
-        {
-            transform_tohost_VkSparseBufferMemoryBindInfo(resourceTracker, (VkSparseBufferMemoryBindInfo*)(toTransform->pBufferBinds + i));
-        }
-    }
-    if (toTransform->pImageOpaqueBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->imageOpaqueBindCount; ++i)
-        {
-            transform_tohost_VkSparseImageOpaqueMemoryBindInfo(resourceTracker, (VkSparseImageOpaqueMemoryBindInfo*)(toTransform->pImageOpaqueBinds + i));
-        }
-    }
-    if (toTransform->pImageBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->imageBindCount; ++i)
-        {
-            transform_tohost_VkSparseImageMemoryBindInfo(resourceTracker, (VkSparseImageMemoryBindInfo*)(toTransform->pImageBinds + i));
-        }
-    }
-}
-
-void transform_fromhost_VkBindSparseInfo(
-    ResourceTracker* resourceTracker,
-    VkBindSparseInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pBufferBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bufferBindCount; ++i)
-        {
-            transform_fromhost_VkSparseBufferMemoryBindInfo(resourceTracker, (VkSparseBufferMemoryBindInfo*)(toTransform->pBufferBinds + i));
-        }
-    }
-    if (toTransform->pImageOpaqueBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->imageOpaqueBindCount; ++i)
-        {
-            transform_fromhost_VkSparseImageOpaqueMemoryBindInfo(resourceTracker, (VkSparseImageOpaqueMemoryBindInfo*)(toTransform->pImageOpaqueBinds + i));
-        }
-    }
-    if (toTransform->pImageBinds)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->imageBindCount; ++i)
-        {
-            transform_fromhost_VkSparseImageMemoryBindInfo(resourceTracker, (VkSparseImageMemoryBindInfo*)(toTransform->pImageBinds + i));
-        }
-    }
-}
-
 void transform_tohost_VkFenceCreateInfo(
     ResourceTracker* resourceTracker,
     VkFenceCreateInfo* toTransform)
@@ -978,22 +1258,6 @@
     (void)toTransform;
 }
 
-void transform_tohost_VkImageSubresourceRange(
-    ResourceTracker* resourceTracker,
-    VkImageSubresourceRange* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkImageSubresourceRange(
-    ResourceTracker* resourceTracker,
-    VkImageSubresourceRange* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
 void transform_tohost_VkImageViewCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageViewCreateInfo* toTransform)
@@ -1092,11 +1356,14 @@
 {
     (void)resourceTracker;
     (void)toTransform;
-    if (toTransform->pMapEntries)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->mapEntryCount; ++i)
+        if (toTransform->pMapEntries)
         {
-            transform_tohost_VkSpecializationMapEntry(resourceTracker, (VkSpecializationMapEntry*)(toTransform->pMapEntries + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->mapEntryCount; ++i)
+            {
+                transform_tohost_VkSpecializationMapEntry(resourceTracker, (VkSpecializationMapEntry*)(toTransform->pMapEntries + i));
+            }
         }
     }
 }
@@ -1107,11 +1374,14 @@
 {
     (void)resourceTracker;
     (void)toTransform;
-    if (toTransform->pMapEntries)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->mapEntryCount; ++i)
+        if (toTransform->pMapEntries)
         {
-            transform_fromhost_VkSpecializationMapEntry(resourceTracker, (VkSpecializationMapEntry*)(toTransform->pMapEntries + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->mapEntryCount; ++i)
+            {
+                transform_fromhost_VkSpecializationMapEntry(resourceTracker, (VkSpecializationMapEntry*)(toTransform->pMapEntries + i));
+            }
         }
     }
 }
@@ -1148,6 +1418,32 @@
     }
 }
 
+void transform_tohost_VkComputePipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkComputePipelineCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(&toTransform->stage));
+}
+
+void transform_fromhost_VkComputePipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkComputePipelineCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(&toTransform->stage));
+}
+
 void transform_tohost_VkVertexInputBindingDescription(
     ResourceTracker* resourceTracker,
     VkVertexInputBindingDescription* toTransform)
@@ -1190,18 +1486,24 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pVertexBindingDescriptions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDescriptionCount; ++i)
+        if (toTransform->pVertexBindingDescriptions)
         {
-            transform_tohost_VkVertexInputBindingDescription(resourceTracker, (VkVertexInputBindingDescription*)(toTransform->pVertexBindingDescriptions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDescriptionCount; ++i)
+            {
+                transform_tohost_VkVertexInputBindingDescription(resourceTracker, (VkVertexInputBindingDescription*)(toTransform->pVertexBindingDescriptions + i));
+            }
         }
     }
-    if (toTransform->pVertexAttributeDescriptions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexAttributeDescriptionCount; ++i)
+        if (toTransform->pVertexAttributeDescriptions)
         {
-            transform_tohost_VkVertexInputAttributeDescription(resourceTracker, (VkVertexInputAttributeDescription*)(toTransform->pVertexAttributeDescriptions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->vertexAttributeDescriptionCount; ++i)
+            {
+                transform_tohost_VkVertexInputAttributeDescription(resourceTracker, (VkVertexInputAttributeDescription*)(toTransform->pVertexAttributeDescriptions + i));
+            }
         }
     }
 }
@@ -1216,18 +1518,24 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pVertexBindingDescriptions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDescriptionCount; ++i)
+        if (toTransform->pVertexBindingDescriptions)
         {
-            transform_fromhost_VkVertexInputBindingDescription(resourceTracker, (VkVertexInputBindingDescription*)(toTransform->pVertexBindingDescriptions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDescriptionCount; ++i)
+            {
+                transform_fromhost_VkVertexInputBindingDescription(resourceTracker, (VkVertexInputBindingDescription*)(toTransform->pVertexBindingDescriptions + i));
+            }
         }
     }
-    if (toTransform->pVertexAttributeDescriptions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexAttributeDescriptionCount; ++i)
+        if (toTransform->pVertexAttributeDescriptions)
         {
-            transform_fromhost_VkVertexInputAttributeDescription(resourceTracker, (VkVertexInputAttributeDescription*)(toTransform->pVertexAttributeDescriptions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->vertexAttributeDescriptionCount; ++i)
+            {
+                transform_fromhost_VkVertexInputAttributeDescription(resourceTracker, (VkVertexInputAttributeDescription*)(toTransform->pVertexAttributeDescriptions + i));
+            }
         }
     }
 }
@@ -1296,58 +1604,6 @@
     (void)toTransform;
 }
 
-void transform_tohost_VkOffset2D(
-    ResourceTracker* resourceTracker,
-    VkOffset2D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkOffset2D(
-    ResourceTracker* resourceTracker,
-    VkOffset2D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkExtent2D(
-    ResourceTracker* resourceTracker,
-    VkExtent2D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkExtent2D(
-    ResourceTracker* resourceTracker,
-    VkExtent2D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkRect2D(
-    ResourceTracker* resourceTracker,
-    VkRect2D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_tohost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
-    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
-}
-
-void transform_fromhost_VkRect2D(
-    ResourceTracker* resourceTracker,
-    VkRect2D* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_fromhost_VkOffset2D(resourceTracker, (VkOffset2D*)(&toTransform->offset));
-    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->extent));
-}
-
 void transform_tohost_VkPipelineViewportStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineViewportStateCreateInfo* toTransform)
@@ -1358,18 +1614,24 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pViewports)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        if (toTransform->pViewports)
         {
-            transform_tohost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewports + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_tohost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewports + i));
+            }
         }
     }
-    if (toTransform->pScissors)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->scissorCount; ++i)
+        if (toTransform->pScissors)
         {
-            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pScissors + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->scissorCount; ++i)
+            {
+                transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pScissors + i));
+            }
         }
     }
 }
@@ -1384,18 +1646,24 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pViewports)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        if (toTransform->pViewports)
         {
-            transform_fromhost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewports + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_fromhost_VkViewport(resourceTracker, (VkViewport*)(toTransform->pViewports + i));
+            }
         }
     }
-    if (toTransform->pScissors)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->scissorCount; ++i)
+        if (toTransform->pScissors)
         {
-            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pScissors + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->scissorCount; ++i)
+            {
+                transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pScissors + i));
+            }
         }
     }
 }
@@ -1518,11 +1786,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+        if (toTransform->pAttachments)
         {
-            transform_tohost_VkPipelineColorBlendAttachmentState(resourceTracker, (VkPipelineColorBlendAttachmentState*)(toTransform->pAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+            {
+                transform_tohost_VkPipelineColorBlendAttachmentState(resourceTracker, (VkPipelineColorBlendAttachmentState*)(toTransform->pAttachments + i));
+            }
         }
     }
 }
@@ -1537,11 +1808,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+        if (toTransform->pAttachments)
         {
-            transform_fromhost_VkPipelineColorBlendAttachmentState(resourceTracker, (VkPipelineColorBlendAttachmentState*)(toTransform->pAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+            {
+                transform_fromhost_VkPipelineColorBlendAttachmentState(resourceTracker, (VkPipelineColorBlendAttachmentState*)(toTransform->pAttachments + i));
+            }
         }
     }
 }
@@ -1580,11 +1854,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pStages)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+        if (toTransform->pStages)
         {
-            transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
         }
     }
     if (toTransform->pVertexInputState)
@@ -1635,11 +1912,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pStages)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+        if (toTransform->pStages)
         {
-            transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
         }
     }
     if (toTransform->pVertexInputState)
@@ -1680,32 +1960,6 @@
     }
 }
 
-void transform_tohost_VkComputePipelineCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkComputePipelineCreateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(&toTransform->stage));
-}
-
-void transform_fromhost_VkComputePipelineCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkComputePipelineCreateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(&toTransform->stage));
-}
-
 void transform_tohost_VkPushConstantRange(
     ResourceTracker* resourceTracker,
     VkPushConstantRange* toTransform)
@@ -1732,11 +1986,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pPushConstantRanges)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->pushConstantRangeCount; ++i)
+        if (toTransform->pPushConstantRanges)
         {
-            transform_tohost_VkPushConstantRange(resourceTracker, (VkPushConstantRange*)(toTransform->pPushConstantRanges + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->pushConstantRangeCount; ++i)
+            {
+                transform_tohost_VkPushConstantRange(resourceTracker, (VkPushConstantRange*)(toTransform->pPushConstantRanges + i));
+            }
         }
     }
 }
@@ -1751,11 +2008,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pPushConstantRanges)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->pushConstantRangeCount; ++i)
+        if (toTransform->pPushConstantRanges)
         {
-            transform_fromhost_VkPushConstantRange(resourceTracker, (VkPushConstantRange*)(toTransform->pPushConstantRanges + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->pushConstantRangeCount; ++i)
+            {
+                transform_fromhost_VkPushConstantRange(resourceTracker, (VkPushConstantRange*)(toTransform->pPushConstantRanges + i));
+            }
         }
     }
 }
@@ -1784,6 +2044,146 @@
     }
 }
 
+void transform_tohost_VkCopyDescriptorSet(
+    ResourceTracker* resourceTracker,
+    VkCopyDescriptorSet* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCopyDescriptorSet(
+    ResourceTracker* resourceTracker,
+    VkCopyDescriptorSet* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorBufferInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorBufferInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDescriptorBufferInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorBufferInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDescriptorImageInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorImageInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDescriptorImageInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorImageInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDescriptorPoolSize(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolSize* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDescriptorPoolSize(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolSize* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDescriptorPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pPoolSizes)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->poolSizeCount; ++i)
+            {
+                transform_tohost_VkDescriptorPoolSize(resourceTracker, (VkDescriptorPoolSize*)(toTransform->pPoolSizes + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkDescriptorPoolCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pPoolSizes)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->poolSizeCount; ++i)
+            {
+                transform_fromhost_VkDescriptorPoolSize(resourceTracker, (VkDescriptorPoolSize*)(toTransform->pPoolSizes + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkDescriptorSetAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDescriptorSetAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 void transform_tohost_VkDescriptorSetLayoutBinding(
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutBinding* toTransform)
@@ -1810,11 +2210,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pBindings)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindingCount; ++i)
+        if (toTransform->pBindings)
         {
-            transform_tohost_VkDescriptorSetLayoutBinding(resourceTracker, (VkDescriptorSetLayoutBinding*)(toTransform->pBindings + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindingCount; ++i)
+            {
+                transform_tohost_VkDescriptorSetLayoutBinding(resourceTracker, (VkDescriptorSetLayoutBinding*)(toTransform->pBindings + i));
+            }
         }
     }
 }
@@ -1829,125 +2232,18 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pBindings)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->bindingCount; ++i)
+        if (toTransform->pBindings)
         {
-            transform_fromhost_VkDescriptorSetLayoutBinding(resourceTracker, (VkDescriptorSetLayoutBinding*)(toTransform->pBindings + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->bindingCount; ++i)
+            {
+                transform_fromhost_VkDescriptorSetLayoutBinding(resourceTracker, (VkDescriptorSetLayoutBinding*)(toTransform->pBindings + i));
+            }
         }
     }
 }
 
-void transform_tohost_VkDescriptorPoolSize(
-    ResourceTracker* resourceTracker,
-    VkDescriptorPoolSize* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkDescriptorPoolSize(
-    ResourceTracker* resourceTracker,
-    VkDescriptorPoolSize* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkDescriptorPoolCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorPoolCreateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pPoolSizes)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->poolSizeCount; ++i)
-        {
-            transform_tohost_VkDescriptorPoolSize(resourceTracker, (VkDescriptorPoolSize*)(toTransform->pPoolSizes + i));
-        }
-    }
-}
-
-void transform_fromhost_VkDescriptorPoolCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorPoolCreateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pPoolSizes)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->poolSizeCount; ++i)
-        {
-            transform_fromhost_VkDescriptorPoolSize(resourceTracker, (VkDescriptorPoolSize*)(toTransform->pPoolSizes + i));
-        }
-    }
-}
-
-void transform_tohost_VkDescriptorSetAllocateInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetAllocateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDescriptorSetAllocateInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetAllocateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkDescriptorImageInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorImageInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkDescriptorImageInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorImageInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkDescriptorBufferInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorBufferInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkDescriptorBufferInfo(
-    ResourceTracker* resourceTracker,
-    VkDescriptorBufferInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
 void transform_tohost_VkWriteDescriptorSet(
     ResourceTracker* resourceTracker,
     VkWriteDescriptorSet* toTransform)
@@ -1958,18 +2254,24 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pImageInfo)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+        if (toTransform->pImageInfo)
         {
-            transform_tohost_VkDescriptorImageInfo(resourceTracker, (VkDescriptorImageInfo*)(toTransform->pImageInfo + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+            {
+                transform_tohost_VkDescriptorImageInfo(resourceTracker, (VkDescriptorImageInfo*)(toTransform->pImageInfo + i));
+            }
         }
     }
-    if (toTransform->pBufferInfo)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+        if (toTransform->pBufferInfo)
         {
-            transform_tohost_VkDescriptorBufferInfo(resourceTracker, (VkDescriptorBufferInfo*)(toTransform->pBufferInfo + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+            {
+                transform_tohost_VkDescriptorBufferInfo(resourceTracker, (VkDescriptorBufferInfo*)(toTransform->pBufferInfo + i));
+            }
         }
     }
 }
@@ -1984,70 +2286,28 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pImageInfo)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+        if (toTransform->pImageInfo)
         {
-            transform_fromhost_VkDescriptorImageInfo(resourceTracker, (VkDescriptorImageInfo*)(toTransform->pImageInfo + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+            {
+                transform_fromhost_VkDescriptorImageInfo(resourceTracker, (VkDescriptorImageInfo*)(toTransform->pImageInfo + i));
+            }
         }
     }
-    if (toTransform->pBufferInfo)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+        if (toTransform->pBufferInfo)
         {
-            transform_fromhost_VkDescriptorBufferInfo(resourceTracker, (VkDescriptorBufferInfo*)(toTransform->pBufferInfo + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorCount; ++i)
+            {
+                transform_fromhost_VkDescriptorBufferInfo(resourceTracker, (VkDescriptorBufferInfo*)(toTransform->pBufferInfo + i));
+            }
         }
     }
 }
 
-void transform_tohost_VkCopyDescriptorSet(
-    ResourceTracker* resourceTracker,
-    VkCopyDescriptorSet* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkCopyDescriptorSet(
-    ResourceTracker* resourceTracker,
-    VkCopyDescriptorSet* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkFramebufferCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkFramebufferCreateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkFramebufferCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkFramebufferCreateInfo* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 void transform_tohost_VkAttachmentDescription(
     ResourceTracker* resourceTracker,
     VkAttachmentDescription* toTransform)
@@ -2080,31 +2340,64 @@
     (void)toTransform;
 }
 
+void transform_tohost_VkFramebufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkFramebufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 void transform_tohost_VkSubpassDescription(
     ResourceTracker* resourceTracker,
     VkSubpassDescription* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
-    if (toTransform->pInputAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+        if (toTransform->pInputAttachments)
         {
-            transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pInputAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pInputAttachments + i));
+            }
         }
     }
-    if (toTransform->pColorAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        if (toTransform->pColorAttachments)
         {
-            transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pColorAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pColorAttachments + i));
+            }
         }
     }
-    if (toTransform->pResolveAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        if (toTransform->pResolveAttachments)
         {
-            transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pResolveAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pResolveAttachments + i));
+            }
         }
     }
     if (toTransform->pDepthStencilAttachment)
@@ -2119,25 +2412,34 @@
 {
     (void)resourceTracker;
     (void)toTransform;
-    if (toTransform->pInputAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+        if (toTransform->pInputAttachments)
         {
-            transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pInputAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pInputAttachments + i));
+            }
         }
     }
-    if (toTransform->pColorAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        if (toTransform->pColorAttachments)
         {
-            transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pColorAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pColorAttachments + i));
+            }
         }
     }
-    if (toTransform->pResolveAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+        if (toTransform->pResolveAttachments)
         {
-            transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pResolveAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentReference(resourceTracker, (VkAttachmentReference*)(toTransform->pResolveAttachments + i));
+            }
         }
     }
     if (toTransform->pDepthStencilAttachment)
@@ -2172,25 +2474,34 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+        if (toTransform->pAttachments)
         {
-            transform_tohost_VkAttachmentDescription(resourceTracker, (VkAttachmentDescription*)(toTransform->pAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentDescription(resourceTracker, (VkAttachmentDescription*)(toTransform->pAttachments + i));
+            }
         }
     }
-    if (toTransform->pSubpasses)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+        if (toTransform->pSubpasses)
         {
-            transform_tohost_VkSubpassDescription(resourceTracker, (VkSubpassDescription*)(toTransform->pSubpasses + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+            {
+                transform_tohost_VkSubpassDescription(resourceTracker, (VkSubpassDescription*)(toTransform->pSubpasses + i));
+            }
         }
     }
-    if (toTransform->pDependencies)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+        if (toTransform->pDependencies)
         {
-            transform_tohost_VkSubpassDependency(resourceTracker, (VkSubpassDependency*)(toTransform->pDependencies + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+            {
+                transform_tohost_VkSubpassDependency(resourceTracker, (VkSubpassDependency*)(toTransform->pDependencies + i));
+            }
         }
     }
 }
@@ -2205,25 +2516,34 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAttachments)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+        if (toTransform->pAttachments)
         {
-            transform_fromhost_VkAttachmentDescription(resourceTracker, (VkAttachmentDescription*)(toTransform->pAttachments + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentDescription(resourceTracker, (VkAttachmentDescription*)(toTransform->pAttachments + i));
+            }
         }
     }
-    if (toTransform->pSubpasses)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+        if (toTransform->pSubpasses)
         {
-            transform_fromhost_VkSubpassDescription(resourceTracker, (VkSubpassDescription*)(toTransform->pSubpasses + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+            {
+                transform_fromhost_VkSubpassDescription(resourceTracker, (VkSubpassDescription*)(toTransform->pSubpasses + i));
+            }
         }
     }
-    if (toTransform->pDependencies)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+        if (toTransform->pDependencies)
         {
-            transform_fromhost_VkSubpassDependency(resourceTracker, (VkSubpassDependency*)(toTransform->pDependencies + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+            {
+                transform_fromhost_VkSubpassDependency(resourceTracker, (VkSubpassDependency*)(toTransform->pDependencies + i));
+            }
         }
     }
 }
@@ -2364,68 +2684,6 @@
     (void)toTransform;
 }
 
-void transform_tohost_VkImageCopy(
-    ResourceTracker* resourceTracker,
-    VkImageCopy* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
-    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
-    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
-    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
-    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
-}
-
-void transform_fromhost_VkImageCopy(
-    ResourceTracker* resourceTracker,
-    VkImageCopy* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
-    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
-    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
-    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
-    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
-}
-
-void transform_tohost_VkImageBlit(
-    ResourceTracker* resourceTracker,
-    VkImageBlit* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
-    }
-    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
-    }
-}
-
-void transform_fromhost_VkImageBlit(
-    ResourceTracker* resourceTracker,
-    VkImageBlit* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
-    }
-    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
-    for (uint32_t i = 0; i < (uint32_t)2; ++i)
-    {
-        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
-    }
-}
-
 void transform_tohost_VkBufferImageCopy(
     ResourceTracker* resourceTracker,
     VkBufferImageCopy* toTransform)
@@ -2536,6 +2794,68 @@
     transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->rect));
 }
 
+void transform_tohost_VkImageBlit(
+    ResourceTracker* resourceTracker,
+    VkImageBlit* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
+    }
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
+    }
+}
+
+void transform_fromhost_VkImageBlit(
+    ResourceTracker* resourceTracker,
+    VkImageBlit* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
+    }
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
+    }
+}
+
+void transform_tohost_VkImageCopy(
+    ResourceTracker* resourceTracker,
+    VkImageCopy* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_fromhost_VkImageCopy(
+    ResourceTracker* resourceTracker,
+    VkImageCopy* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
 void transform_tohost_VkImageResolve(
     ResourceTracker* resourceTracker,
     VkImageResolve* toTransform)
@@ -2562,80 +2882,6 @@
     transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
 }
 
-void transform_tohost_VkMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkMemoryBarrier* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkMemoryBarrier* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkBufferMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkBufferMemoryBarrier* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkBufferMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkBufferMemoryBarrier* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkImageMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkImageMemoryBarrier* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    transform_tohost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
-}
-
-void transform_fromhost_VkImageMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkImageMemoryBarrier* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    transform_fromhost_VkImageSubresourceRange(resourceTracker, (VkImageSubresourceRange*)(&toTransform->subresourceRange));
-}
-
 void transform_tohost_VkRenderPassBeginInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassBeginInfo* toTransform)
@@ -2647,11 +2893,14 @@
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
-    if (toTransform->pClearValues)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->clearValueCount; ++i)
+        if (toTransform->pClearValues)
         {
-            transform_tohost_VkClearValue(resourceTracker, (VkClearValue*)(toTransform->pClearValues + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->clearValueCount; ++i)
+            {
+                transform_tohost_VkClearValue(resourceTracker, (VkClearValue*)(toTransform->pClearValues + i));
+            }
         }
     }
 }
@@ -2667,111 +2916,18 @@
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
-    if (toTransform->pClearValues)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->clearValueCount; ++i)
+        if (toTransform->pClearValues)
         {
-            transform_fromhost_VkClearValue(resourceTracker, (VkClearValue*)(toTransform->pClearValues + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->clearValueCount; ++i)
+            {
+                transform_fromhost_VkClearValue(resourceTracker, (VkClearValue*)(toTransform->pClearValues + i));
+            }
         }
     }
 }
 
-void transform_tohost_VkDispatchIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDispatchIndirectCommand* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkDispatchIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDispatchIndirectCommand* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkDrawIndexedIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndexedIndirectCommand* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkDrawIndexedIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndexedIndirectCommand* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkDrawIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndirectCommand* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkDrawIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndirectCommand* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkBaseOutStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseOutStructure* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkBaseOutStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseOutStructure* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkBaseInStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseInStructure* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkBaseInStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseInStructure* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 #endif
 #ifdef VK_VERSION_1_1
 void transform_tohost_VkPhysicalDeviceSubgroupProperties(
@@ -2956,11 +3112,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pDeviceRenderAreas)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->deviceRenderAreaCount; ++i)
+        if (toTransform->pDeviceRenderAreas)
         {
-            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDeviceRenderAreas + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->deviceRenderAreaCount; ++i)
+            {
+                transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDeviceRenderAreas + i));
+            }
         }
     }
 }
@@ -2975,11 +3134,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pDeviceRenderAreas)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->deviceRenderAreaCount; ++i)
+        if (toTransform->pDeviceRenderAreas)
         {
-            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDeviceRenderAreas + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->deviceRenderAreaCount; ++i)
+            {
+                transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDeviceRenderAreas + i));
+            }
         }
     }
 }
@@ -3090,11 +3252,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pSplitInstanceBindRegions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->splitInstanceBindRegionCount; ++i)
+        if (toTransform->pSplitInstanceBindRegions)
         {
-            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pSplitInstanceBindRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->splitInstanceBindRegionCount; ++i)
+            {
+                transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pSplitInstanceBindRegions + i));
+            }
         }
     }
 }
@@ -3109,11 +3274,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pSplitInstanceBindRegions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->splitInstanceBindRegionCount; ++i)
+        if (toTransform->pSplitInstanceBindRegions)
         {
-            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pSplitInstanceBindRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->splitInstanceBindRegionCount; ++i)
+            {
+                transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pSplitInstanceBindRegions + i));
+            }
         }
     }
 }
@@ -3570,11 +3738,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAspectReferences)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->aspectReferenceCount; ++i)
+        if (toTransform->pAspectReferences)
         {
-            transform_tohost_VkInputAttachmentAspectReference(resourceTracker, (VkInputAttachmentAspectReference*)(toTransform->pAspectReferences + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->aspectReferenceCount; ++i)
+            {
+                transform_tohost_VkInputAttachmentAspectReference(resourceTracker, (VkInputAttachmentAspectReference*)(toTransform->pAspectReferences + i));
+            }
         }
     }
 }
@@ -3589,11 +3760,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAspectReferences)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->aspectReferenceCount; ++i)
+        if (toTransform->pAspectReferences)
         {
-            transform_fromhost_VkInputAttachmentAspectReference(resourceTracker, (VkInputAttachmentAspectReference*)(toTransform->pAspectReferences + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->aspectReferenceCount; ++i)
+            {
+                transform_fromhost_VkInputAttachmentAspectReference(resourceTracker, (VkInputAttachmentAspectReference*)(toTransform->pAspectReferences + i));
+            }
         }
     }
 }
@@ -3718,9 +3892,9 @@
     }
 }
 
-void transform_tohost_VkPhysicalDeviceVariablePointerFeatures(
+void transform_tohost_VkPhysicalDeviceVariablePointersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceVariablePointerFeatures* toTransform)
+    VkPhysicalDeviceVariablePointersFeatures* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -3730,9 +3904,9 @@
     }
 }
 
-void transform_fromhost_VkPhysicalDeviceVariablePointerFeatures(
+void transform_fromhost_VkPhysicalDeviceVariablePointersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceVariablePointerFeatures* toTransform)
+    VkPhysicalDeviceVariablePointersFeatures* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -4010,11 +4184,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pDescriptorUpdateEntries)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorUpdateEntryCount; ++i)
+        if (toTransform->pDescriptorUpdateEntries)
         {
-            transform_tohost_VkDescriptorUpdateTemplateEntry(resourceTracker, (VkDescriptorUpdateTemplateEntry*)(toTransform->pDescriptorUpdateEntries + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorUpdateEntryCount; ++i)
+            {
+                transform_tohost_VkDescriptorUpdateTemplateEntry(resourceTracker, (VkDescriptorUpdateTemplateEntry*)(toTransform->pDescriptorUpdateEntries + i));
+            }
         }
     }
 }
@@ -4029,11 +4206,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pDescriptorUpdateEntries)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorUpdateEntryCount; ++i)
+        if (toTransform->pDescriptorUpdateEntries)
         {
-            transform_fromhost_VkDescriptorUpdateTemplateEntry(resourceTracker, (VkDescriptorUpdateTemplateEntry*)(toTransform->pDescriptorUpdateEntries + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->descriptorUpdateEntryCount; ++i)
+            {
+                transform_fromhost_VkDescriptorUpdateTemplateEntry(resourceTracker, (VkDescriptorUpdateTemplateEntry*)(toTransform->pDescriptorUpdateEntries + i));
+            }
         }
     }
 }
@@ -4446,9 +4626,9 @@
     }
 }
 
-void transform_tohost_VkPhysicalDeviceShaderDrawParameterFeatures(
+void transform_tohost_VkPhysicalDeviceShaderDrawParametersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderDrawParameterFeatures* toTransform)
+    VkPhysicalDeviceShaderDrawParametersFeatures* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -4458,9 +4638,9 @@
     }
 }
 
-void transform_fromhost_VkPhysicalDeviceShaderDrawParameterFeatures(
+void transform_fromhost_VkPhysicalDeviceShaderDrawParametersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderDrawParameterFeatures* toTransform)
+    VkPhysicalDeviceShaderDrawParametersFeatures* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -4471,6 +4651,1386 @@
 }
 
 #endif
+#ifdef VK_VERSION_1_2
+void transform_tohost_VkPhysicalDeviceVulkan11Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceVulkan11Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceVulkan11Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Properties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceVulkan11Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Properties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceVulkan12Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceVulkan12Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkConformanceVersion(
+    ResourceTracker* resourceTracker,
+    VkConformanceVersion* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkConformanceVersion(
+    ResourceTracker* resourceTracker,
+    VkConformanceVersion* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPhysicalDeviceVulkan12Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Properties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkConformanceVersion(resourceTracker, (VkConformanceVersion*)(&toTransform->conformanceVersion));
+}
+
+void transform_fromhost_VkPhysicalDeviceVulkan12Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Properties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkConformanceVersion(resourceTracker, (VkConformanceVersion*)(&toTransform->conformanceVersion));
+}
+
+void transform_tohost_VkImageFormatListCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageFormatListCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageFormatListCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageFormatListCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAttachmentDescription2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAttachmentDescription2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAttachmentReference2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAttachmentReference2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSubpassDescription2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pInputAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pInputAttachments + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pColorAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pColorAttachments + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pResolveAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pResolveAttachments + i));
+            }
+        }
+    }
+    if (toTransform->pDepthStencilAttachment)
+    {
+        transform_tohost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pDepthStencilAttachment));
+    }
+}
+
+void transform_fromhost_VkSubpassDescription2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pInputAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pInputAttachments + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pColorAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pColorAttachments + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pResolveAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pResolveAttachments + i));
+            }
+        }
+    }
+    if (toTransform->pDepthStencilAttachment)
+    {
+        transform_fromhost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pDepthStencilAttachment));
+    }
+}
+
+void transform_tohost_VkSubpassDependency2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSubpassDependency2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkRenderPassCreateInfo2(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+            {
+                transform_tohost_VkAttachmentDescription2(resourceTracker, (VkAttachmentDescription2*)(toTransform->pAttachments + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pSubpasses)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+            {
+                transform_tohost_VkSubpassDescription2(resourceTracker, (VkSubpassDescription2*)(toTransform->pSubpasses + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pDependencies)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+            {
+                transform_tohost_VkSubpassDependency2(resourceTracker, (VkSubpassDependency2*)(toTransform->pDependencies + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkRenderPassCreateInfo2(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo2* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pAttachments)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
+            {
+                transform_fromhost_VkAttachmentDescription2(resourceTracker, (VkAttachmentDescription2*)(toTransform->pAttachments + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pSubpasses)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
+            {
+                transform_fromhost_VkSubpassDescription2(resourceTracker, (VkSubpassDescription2*)(toTransform->pSubpasses + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pDependencies)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
+            {
+                transform_fromhost_VkSubpassDependency2(resourceTracker, (VkSubpassDependency2*)(toTransform->pDependencies + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkSubpassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSubpassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSubpassEndInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassEndInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSubpassEndInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassEndInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDevice8BitStorageFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice8BitStorageFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevice8BitStorageFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice8BitStorageFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDriverProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDriverProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkConformanceVersion(resourceTracker, (VkConformanceVersion*)(&toTransform->conformanceVersion));
+}
+
+void transform_fromhost_VkPhysicalDeviceDriverProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDriverProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkConformanceVersion(resourceTracker, (VkConformanceVersion*)(&toTransform->conformanceVersion));
+}
+
+void transform_tohost_VkPhysicalDeviceShaderAtomicInt64Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicInt64Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderAtomicInt64Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicInt64Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderFloat16Int8Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderFloat16Int8Features* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceFloatControlsProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFloatControlsProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFloatControlsProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFloatControlsProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSubpassDescriptionDepthStencilResolve(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescriptionDepthStencilResolve* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pDepthStencilResolveAttachment)
+    {
+        transform_tohost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pDepthStencilResolveAttachment));
+    }
+}
+
+void transform_fromhost_VkSubpassDescriptionDepthStencilResolve(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescriptionDepthStencilResolve* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pDepthStencilResolveAttachment)
+    {
+        transform_fromhost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pDepthStencilResolveAttachment));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDepthStencilResolveProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthStencilResolveProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDepthStencilResolveProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthStencilResolveProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageStencilUsageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageStencilUsageCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageStencilUsageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageStencilUsageCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSamplerReductionModeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerReductionModeCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSamplerReductionModeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerReductionModeCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceImagelessFramebufferFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImagelessFramebufferFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceImagelessFramebufferFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImagelessFramebufferFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkFramebufferAttachmentImageInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentImageInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkFramebufferAttachmentImageInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentImageInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkFramebufferAttachmentsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentsCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pAttachmentImageInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentImageInfoCount; ++i)
+            {
+                transform_tohost_VkFramebufferAttachmentImageInfo(resourceTracker, (VkFramebufferAttachmentImageInfo*)(toTransform->pAttachmentImageInfos + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkFramebufferAttachmentsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentsCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pAttachmentImageInfos)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentImageInfoCount; ++i)
+            {
+                transform_fromhost_VkFramebufferAttachmentImageInfo(resourceTracker, (VkFramebufferAttachmentImageInfo*)(toTransform->pAttachmentImageInfos + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkRenderPassAttachmentBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassAttachmentBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkRenderPassAttachmentBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassAttachmentBeginInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAttachmentReferenceStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReferenceStencilLayout* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAttachmentReferenceStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReferenceStencilLayout* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAttachmentDescriptionStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescriptionStencilLayout* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAttachmentDescriptionStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescriptionStencilLayout* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceHostQueryResetFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceHostQueryResetFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceHostQueryResetFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceHostQueryResetFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceTimelineSemaphoreProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceTimelineSemaphoreProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreProperties* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSemaphoreTypeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreTypeCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSemaphoreTypeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreTypeCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkTimelineSemaphoreSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkTimelineSemaphoreSubmitInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkTimelineSemaphoreSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkTimelineSemaphoreSubmitInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSemaphoreWaitInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreWaitInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSemaphoreWaitInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreWaitInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSemaphoreSignalInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSignalInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSemaphoreSignalInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSignalInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferDeviceAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferDeviceAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferOpaqueCaptureAddressCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferOpaqueCaptureAddressCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferOpaqueCaptureAddressCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferOpaqueCaptureAddressCreateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)nullptr, 0, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_surface
 void transform_tohost_VkSurfaceCapabilitiesKHR(
     ResourceTracker* resourceTracker,
@@ -4708,26 +6268,6 @@
 
 #endif
 #ifdef VK_KHR_display
-void transform_tohost_VkDisplayPropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayPropertiesKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalDimensions));
-    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalResolution));
-}
-
-void transform_fromhost_VkDisplayPropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayPropertiesKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalDimensions));
-    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalResolution));
-}
-
 void transform_tohost_VkDisplayModeParametersKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeParametersKHR* toTransform)
@@ -4746,24 +6286,6 @@
     transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->visibleRegion));
 }
 
-void transform_tohost_VkDisplayModePropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayModePropertiesKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_tohost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
-}
-
-void transform_fromhost_VkDisplayModePropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayModePropertiesKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    transform_fromhost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
-}
-
 void transform_tohost_VkDisplayModeCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeCreateInfoKHR* toTransform)
@@ -4790,6 +6312,24 @@
     transform_fromhost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
 }
 
+void transform_tohost_VkDisplayModePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
+}
+
+void transform_fromhost_VkDisplayModePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkDisplayModeParametersKHR(resourceTracker, (VkDisplayModeParametersKHR*)(&toTransform->parameters));
+}
+
 void transform_tohost_VkDisplayPlaneCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneCapabilitiesKHR* toTransform)
@@ -4838,6 +6378,26 @@
     (void)toTransform;
 }
 
+void transform_tohost_VkDisplayPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalDimensions));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalResolution));
+}
+
+void transform_fromhost_VkDisplayPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalDimensions));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->physicalResolution));
+}
+
 void transform_tohost_VkDisplaySurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplaySurfaceCreateInfoKHR* toTransform)
@@ -4973,32 +6533,6 @@
 }
 
 #endif
-#ifdef VK_KHR_mir_surface
-void transform_tohost_VkMirSurfaceCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkMirSurfaceCreateInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkMirSurfaceCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkMirSurfaceCreateInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-#endif
 #ifdef VK_KHR_android_surface
 void transform_tohost_VkAndroidSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
@@ -5455,6 +6989,8 @@
 }
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+#endif
 #ifdef VK_KHR_16bit_storage
 #endif
 #ifdef VK_KHR_incremental_present
@@ -5484,11 +7020,14 @@
 {
     (void)resourceTracker;
     (void)toTransform;
-    if (toTransform->pRectangles)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->rectangleCount; ++i)
+        if (toTransform->pRectangles)
         {
-            transform_tohost_VkRectLayerKHR(resourceTracker, (VkRectLayerKHR*)(toTransform->pRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->rectangleCount; ++i)
+            {
+                transform_tohost_VkRectLayerKHR(resourceTracker, (VkRectLayerKHR*)(toTransform->pRectangles + i));
+            }
         }
     }
 }
@@ -5499,11 +7038,14 @@
 {
     (void)resourceTracker;
     (void)toTransform;
-    if (toTransform->pRectangles)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->rectangleCount; ++i)
+        if (toTransform->pRectangles)
         {
-            transform_fromhost_VkRectLayerKHR(resourceTracker, (VkRectLayerKHR*)(toTransform->pRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->rectangleCount; ++i)
+            {
+                transform_fromhost_VkRectLayerKHR(resourceTracker, (VkRectLayerKHR*)(toTransform->pRectangles + i));
+            }
         }
     }
 }
@@ -5518,11 +7060,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pRegions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+        if (toTransform->pRegions)
         {
-            transform_tohost_VkPresentRegionKHR(resourceTracker, (VkPresentRegionKHR*)(toTransform->pRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+            {
+                transform_tohost_VkPresentRegionKHR(resourceTracker, (VkPresentRegionKHR*)(toTransform->pRegions + i));
+            }
         }
     }
 }
@@ -5537,11 +7082,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pRegions)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+        if (toTransform->pRegions)
         {
-            transform_fromhost_VkPresentRegionKHR(resourceTracker, (VkPresentRegionKHR*)(toTransform->pRegions + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+            {
+                transform_fromhost_VkPresentRegionKHR(resourceTracker, (VkPresentRegionKHR*)(toTransform->pRegions + i));
+            }
         }
     }
 }
@@ -5549,267 +7097,9 @@
 #endif
 #ifdef VK_KHR_descriptor_update_template
 #endif
+#ifdef VK_KHR_imageless_framebuffer
+#endif
 #ifdef VK_KHR_create_renderpass2
-void transform_tohost_VkAttachmentDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentDescription2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkAttachmentDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentDescription2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkAttachmentReference2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentReference2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkAttachmentReference2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentReference2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkSubpassDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDescription2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pInputAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
-        {
-            transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pInputAttachments + i));
-        }
-    }
-    if (toTransform->pColorAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
-        {
-            transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pColorAttachments + i));
-        }
-    }
-    if (toTransform->pResolveAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
-        {
-            transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pResolveAttachments + i));
-        }
-    }
-    if (toTransform->pDepthStencilAttachment)
-    {
-        transform_tohost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pDepthStencilAttachment));
-    }
-}
-
-void transform_fromhost_VkSubpassDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDescription2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pInputAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->inputAttachmentCount; ++i)
-        {
-            transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pInputAttachments + i));
-        }
-    }
-    if (toTransform->pColorAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
-        {
-            transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pColorAttachments + i));
-        }
-    }
-    if (toTransform->pResolveAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->colorAttachmentCount; ++i)
-        {
-            transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pResolveAttachments + i));
-        }
-    }
-    if (toTransform->pDepthStencilAttachment)
-    {
-        transform_fromhost_VkAttachmentReference2KHR(resourceTracker, (VkAttachmentReference2KHR*)(toTransform->pDepthStencilAttachment));
-    }
-}
-
-void transform_tohost_VkSubpassDependency2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDependency2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSubpassDependency2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDependency2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkRenderPassCreateInfo2KHR(
-    ResourceTracker* resourceTracker,
-    VkRenderPassCreateInfo2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
-        {
-            transform_tohost_VkAttachmentDescription2KHR(resourceTracker, (VkAttachmentDescription2KHR*)(toTransform->pAttachments + i));
-        }
-    }
-    if (toTransform->pSubpasses)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
-        {
-            transform_tohost_VkSubpassDescription2KHR(resourceTracker, (VkSubpassDescription2KHR*)(toTransform->pSubpasses + i));
-        }
-    }
-    if (toTransform->pDependencies)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
-        {
-            transform_tohost_VkSubpassDependency2KHR(resourceTracker, (VkSubpassDependency2KHR*)(toTransform->pDependencies + i));
-        }
-    }
-}
-
-void transform_fromhost_VkRenderPassCreateInfo2KHR(
-    ResourceTracker* resourceTracker,
-    VkRenderPassCreateInfo2KHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pAttachments)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentCount; ++i)
-        {
-            transform_fromhost_VkAttachmentDescription2KHR(resourceTracker, (VkAttachmentDescription2KHR*)(toTransform->pAttachments + i));
-        }
-    }
-    if (toTransform->pSubpasses)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->subpassCount; ++i)
-        {
-            transform_fromhost_VkSubpassDescription2KHR(resourceTracker, (VkSubpassDescription2KHR*)(toTransform->pSubpasses + i));
-        }
-    }
-    if (toTransform->pDependencies)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->dependencyCount; ++i)
-        {
-            transform_fromhost_VkSubpassDependency2KHR(resourceTracker, (VkSubpassDependency2KHR*)(toTransform->pDependencies + i));
-        }
-    }
-}
-
-void transform_tohost_VkSubpassBeginInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassBeginInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSubpassBeginInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassBeginInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkSubpassEndInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassEndInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSubpassEndInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassEndInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 #endif
 #ifdef VK_KHR_shared_presentable_image
 void transform_tohost_VkSharedPresentSurfaceCapabilitiesKHR(
@@ -5965,6 +7255,192 @@
 }
 
 #endif
+#ifdef VK_KHR_performance_query
+void transform_tohost_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceCounterKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPerformanceCounterKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceCounterDescriptionKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterDescriptionKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPerformanceCounterDescriptionKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterDescriptionKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkQueryPoolPerformanceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkQueryPoolPerformanceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceCounterResultKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterResultKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkPerformanceCounterResultKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterResultKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkAcquireProfilingLockInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAcquireProfilingLockInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAcquireProfilingLockInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAcquireProfilingLockInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceQuerySubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceQuerySubmitInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPerformanceQuerySubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceQuerySubmitInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_maintenance2
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
@@ -6186,43 +7662,75 @@
 #ifdef VK_KHR_get_memory_requirements2
 #endif
 #ifdef VK_KHR_image_format_list
-void transform_tohost_VkImageFormatListCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkImageFormatListCreateInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkImageFormatListCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkImageFormatListCreateInfoKHR* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
 #endif
 #ifdef VK_KHR_bind_memory2
 #endif
+#ifdef VK_KHR_portability_subset
+void transform_tohost_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_KHR_maintenance3
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
+#ifdef VK_KHR_shader_subgroup_extended_types
+#endif
 #ifdef VK_KHR_8bit_storage
-void transform_tohost_VkPhysicalDevice8BitStorageFeaturesKHR(
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+#endif
+#ifdef VK_KHR_shader_clock
+void transform_tohost_VkPhysicalDeviceShaderClockFeaturesKHR(
     ResourceTracker* resourceTracker,
-    VkPhysicalDevice8BitStorageFeaturesKHR* toTransform)
+    VkPhysicalDeviceShaderClockFeaturesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -6232,9 +7740,9 @@
     }
 }
 
-void transform_fromhost_VkPhysicalDevice8BitStorageFeaturesKHR(
+void transform_fromhost_VkPhysicalDeviceShaderClockFeaturesKHR(
     ResourceTracker* resourceTracker,
-    VkPhysicalDevice8BitStorageFeaturesKHR* toTransform)
+    VkPhysicalDeviceShaderClockFeaturesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -6245,10 +7753,22 @@
 }
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features(
+#ifdef VK_KHR_driver_properties
+#endif
+#ifdef VK_KHR_shader_float_controls
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void transform_tohost_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderFloat16Int8Features* toTransform)
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -6258,9 +7778,9 @@
     }
 }
 
-void transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features(
+void transform_fromhost_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderFloat16Int8Features* toTransform)
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -6271,6 +7791,808 @@
 }
 
 #endif
+#ifdef VK_KHR_fragment_shading_rate
+void transform_tohost_VkFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFragmentShadingRateAttachmentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pFragmentShadingRateAttachment)
+    {
+        transform_tohost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pFragmentShadingRateAttachment));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->shadingRateAttachmentTexelSize));
+}
+
+void transform_fromhost_VkFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFragmentShadingRateAttachmentInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pFragmentShadingRateAttachment)
+    {
+        transform_fromhost_VkAttachmentReference2(resourceTracker, (VkAttachmentReference2*)(toTransform->pFragmentShadingRateAttachment));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->shadingRateAttachmentTexelSize));
+}
+
+void transform_tohost_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->fragmentSize));
+}
+
+void transform_fromhost_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->fragmentSize));
+}
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minFragmentShadingRateAttachmentTexelSize));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxFragmentShadingRateAttachmentTexelSize));
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxFragmentSize));
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->minFragmentShadingRateAttachmentTexelSize));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxFragmentShadingRateAttachmentTexelSize));
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->maxFragmentSize));
+}
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->fragmentSize));
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->fragmentSize));
+}
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void transform_tohost_VkSurfaceProtectedCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceProtectedCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSurfaceProtectedCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceProtectedCapabilitiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+#endif
+#ifdef VK_KHR_buffer_device_address
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void transform_tohost_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineExecutablePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutablePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineExecutablePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutablePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineExecutableInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineExecutableInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineExecutableStatisticValueKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticValueKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkPipelineExecutableStatisticValueKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticValueKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineExecutableStatisticKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkPipelineExecutableStatisticValueKHR(resourceTracker, (VkPipelineExecutableStatisticValueKHR*)(&toTransform->value));
+}
+
+void transform_fromhost_VkPipelineExecutableStatisticKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkPipelineExecutableStatisticValueKHR(resourceTracker, (VkPipelineExecutableStatisticValueKHR*)(&toTransform->value));
+}
+
+void transform_tohost_VkPipelineExecutableInternalRepresentationKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInternalRepresentationKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineExecutableInternalRepresentationKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInternalRepresentationKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void transform_tohost_VkPipelineLibraryCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineLibraryCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineLibraryCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineLibraryCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void transform_tohost_VkBufferCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferCopy2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferCopy2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCopyBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_tohost_VkBufferCopy2KHR(resourceTracker, (VkBufferCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkCopyBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_fromhost_VkBufferCopy2KHR(resourceTracker, (VkBufferCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageCopy2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_fromhost_VkImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageCopy2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkCopyImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_tohost_VkImageCopy2KHR(resourceTracker, (VkImageCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkCopyImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_fromhost_VkImageCopy2KHR(resourceTracker, (VkImageCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkBufferImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferImageCopy2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->imageSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->imageOffset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageExtent));
+}
+
+void transform_fromhost_VkBufferImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferImageCopy2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->imageSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->imageOffset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->imageExtent));
+}
+
+void transform_tohost_VkCopyBufferToImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferToImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_tohost_VkBufferImageCopy2KHR(resourceTracker, (VkBufferImageCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkCopyBufferToImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferToImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_fromhost_VkBufferImageCopy2KHR(resourceTracker, (VkBufferImageCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkCopyImageToBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageToBufferInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_tohost_VkBufferImageCopy2KHR(resourceTracker, (VkBufferImageCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkCopyImageToBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageToBufferInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_fromhost_VkBufferImageCopy2KHR(resourceTracker, (VkBufferImageCopy2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkImageBlit2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageBlit2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
+    }
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
+    }
+}
+
+void transform_fromhost_VkImageBlit2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageBlit2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->srcOffsets + i));
+    }
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    for (uint32_t i = 0; i < (uint32_t)2; ++i)
+    {
+        transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(toTransform->dstOffsets + i));
+    }
+}
+
+void transform_tohost_VkBlitImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkBlitImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_tohost_VkImageBlit2KHR(resourceTracker, (VkImageBlit2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkBlitImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkBlitImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_fromhost_VkImageBlit2KHR(resourceTracker, (VkImageBlit2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkImageResolve2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageResolve2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_tohost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_tohost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_tohost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_fromhost_VkImageResolve2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageResolve2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->srcSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->srcOffset));
+    transform_fromhost_VkImageSubresourceLayers(resourceTracker, (VkImageSubresourceLayers*)(&toTransform->dstSubresource));
+    transform_fromhost_VkOffset3D(resourceTracker, (VkOffset3D*)(&toTransform->dstOffset));
+    transform_fromhost_VkExtent3D(resourceTracker, (VkExtent3D*)(&toTransform->extent));
+}
+
+void transform_tohost_VkResolveImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkResolveImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_tohost_VkImageResolve2KHR(resourceTracker, (VkImageResolve2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkResolveImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkResolveImageInfo2KHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pRegions)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->regionCount; ++i)
+            {
+                transform_fromhost_VkImageResolve2KHR(resourceTracker, (VkImageResolve2KHR*)(toTransform->pRegions + i));
+            }
+        }
+    }
+}
+
+#endif
 #ifdef VK_ANDROID_native_buffer
 void transform_tohost_VkNativeBufferANDROID(
     ResourceTracker* resourceTracker,
@@ -6509,6 +8831,130 @@
 }
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void transform_tohost_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void transform_tohost_VkImageViewHandleInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewHandleInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageViewHandleInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewHandleInfoNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageViewAddressPropertiesNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewAddressPropertiesNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageViewAddressPropertiesNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewAddressPropertiesNVX* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -6581,6 +9027,58 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void transform_tohost_VkStreamDescriptorSurfaceCreateInfoGGP(
+    ResourceTracker* resourceTracker,
+    VkStreamDescriptorSurfaceCreateInfoGGP* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkStreamDescriptorSurfaceCreateInfoGGP(
+    ResourceTracker* resourceTracker,
+    VkStreamDescriptorSurfaceCreateInfoGGP* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void transform_tohost_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -6787,6 +9285,82 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void transform_tohost_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void transform_tohost_VkImageViewASTCDecodeModeEXT(
+    ResourceTracker* resourceTracker,
+    VkImageViewASTCDecodeModeEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageViewASTCDecodeModeEXT(
+    ResourceTracker* resourceTracker,
+    VkImageViewASTCDecodeModeEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void transform_tohost_VkConditionalRenderingBeginInfoEXT(
     ResourceTracker* resourceTracker,
@@ -6861,308 +9435,6 @@
 }
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void transform_tohost_VkDeviceGeneratedCommandsFeaturesNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsFeaturesNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsFeaturesNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkDeviceGeneratedCommandsLimitsNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsLimitsNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsLimitsNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkIndirectCommandsTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsTokenNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkIndirectCommandsTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsTokenNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkIndirectCommandsLayoutTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutTokenNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkIndirectCommandsLayoutTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutTokenNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutCreateInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pTokens)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->tokenCount; ++i)
-        {
-            transform_tohost_VkIndirectCommandsLayoutTokenNVX(resourceTracker, (VkIndirectCommandsLayoutTokenNVX*)(toTransform->pTokens + i));
-        }
-    }
-}
-
-void transform_fromhost_VkIndirectCommandsLayoutCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutCreateInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pTokens)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->tokenCount; ++i)
-        {
-            transform_fromhost_VkIndirectCommandsLayoutTokenNVX(resourceTracker, (VkIndirectCommandsLayoutTokenNVX*)(toTransform->pTokens + i));
-        }
-    }
-}
-
-void transform_tohost_VkCmdProcessCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdProcessCommandsInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pIndirectCommandsTokens)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->indirectCommandsTokenCount; ++i)
-        {
-            transform_tohost_VkIndirectCommandsTokenNVX(resourceTracker, (VkIndirectCommandsTokenNVX*)(toTransform->pIndirectCommandsTokens + i));
-        }
-    }
-}
-
-void transform_fromhost_VkCmdProcessCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdProcessCommandsInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-    if (toTransform->pIndirectCommandsTokens)
-    {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->indirectCommandsTokenCount; ++i)
-        {
-            transform_fromhost_VkIndirectCommandsTokenNVX(resourceTracker, (VkIndirectCommandsTokenNVX*)(toTransform->pIndirectCommandsTokens + i));
-        }
-    }
-}
-
-void transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdReserveSpaceForCommandsInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkCmdReserveSpaceForCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdReserveSpaceForCommandsInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkObjectTableCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableCreateInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkObjectTableCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableCreateInfoNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkObjectTableEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkObjectTableEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkObjectTablePipelineEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePipelineEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkObjectTablePipelineEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePipelineEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkObjectTableDescriptorSetEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableDescriptorSetEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkObjectTableDescriptorSetEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableDescriptorSetEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkObjectTableVertexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableVertexBufferEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkObjectTableVertexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableVertexBufferEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkObjectTableIndexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableIndexBufferEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkObjectTableIndexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableIndexBufferEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_tohost_VkObjectTablePushConstantEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePushConstantEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-void transform_fromhost_VkObjectTablePushConstantEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePushConstantEntryNVX* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-}
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void transform_tohost_VkViewportWScalingNV(
     ResourceTracker* resourceTracker,
@@ -7190,11 +9462,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pViewportWScalings)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        if (toTransform->pViewportWScalings)
         {
-            transform_tohost_VkViewportWScalingNV(resourceTracker, (VkViewportWScalingNV*)(toTransform->pViewportWScalings + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_tohost_VkViewportWScalingNV(resourceTracker, (VkViewportWScalingNV*)(toTransform->pViewportWScalings + i));
+            }
         }
     }
 }
@@ -7209,11 +9484,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pViewportWScalings)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        if (toTransform->pViewportWScalings)
         {
-            transform_fromhost_VkViewportWScalingNV(resourceTracker, (VkViewportWScalingNV*)(toTransform->pViewportWScalings + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_fromhost_VkViewportWScalingNV(resourceTracker, (VkViewportWScalingNV*)(toTransform->pViewportWScalings + i));
+            }
         }
     }
 }
@@ -7412,11 +9690,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pTimes)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+        if (toTransform->pTimes)
         {
-            transform_tohost_VkPresentTimeGOOGLE(resourceTracker, (VkPresentTimeGOOGLE*)(toTransform->pTimes + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+            {
+                transform_tohost_VkPresentTimeGOOGLE(resourceTracker, (VkPresentTimeGOOGLE*)(toTransform->pTimes + i));
+            }
         }
     }
 }
@@ -7431,11 +9712,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pTimes)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+        if (toTransform->pTimes)
         {
-            transform_fromhost_VkPresentTimeGOOGLE(resourceTracker, (VkPresentTimeGOOGLE*)(toTransform->pTimes + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->swapchainCount; ++i)
+            {
+                transform_fromhost_VkPresentTimeGOOGLE(resourceTracker, (VkPresentTimeGOOGLE*)(toTransform->pTimes + i));
+            }
         }
     }
 }
@@ -7500,11 +9784,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pViewportSwizzles)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        if (toTransform->pViewportSwizzles)
         {
-            transform_tohost_VkViewportSwizzleNV(resourceTracker, (VkViewportSwizzleNV*)(toTransform->pViewportSwizzles + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_tohost_VkViewportSwizzleNV(resourceTracker, (VkViewportSwizzleNV*)(toTransform->pViewportSwizzles + i));
+            }
         }
     }
 }
@@ -7519,11 +9806,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pViewportSwizzles)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+        if (toTransform->pViewportSwizzles)
         {
-            transform_fromhost_VkViewportSwizzleNV(resourceTracker, (VkViewportSwizzleNV*)(toTransform->pViewportSwizzles + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_fromhost_VkViewportSwizzleNV(resourceTracker, (VkViewportSwizzleNV*)(toTransform->pViewportSwizzles + i));
+            }
         }
     }
 }
@@ -7564,11 +9854,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pDiscardRectangles)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->discardRectangleCount; ++i)
+        if (toTransform->pDiscardRectangles)
         {
-            transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDiscardRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->discardRectangleCount; ++i)
+            {
+                transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDiscardRectangles + i));
+            }
         }
     }
 }
@@ -7583,11 +9876,14 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pDiscardRectangles)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->discardRectangleCount; ++i)
+        if (toTransform->pDiscardRectangles)
         {
-            transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDiscardRectangles + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->discardRectangleCount; ++i)
+            {
+                transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pDiscardRectangles + i));
+            }
         }
     }
 }
@@ -7643,6 +9939,56 @@
 }
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void transform_tohost_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -7747,59 +10093,13 @@
 }
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void transform_tohost_VkDebugUtilsObjectNameInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectNameInfoEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDebugUtilsObjectNameInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectNameInfoEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkDebugUtilsObjectTagInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectTagInfoEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkDebugUtilsObjectTagInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectTagInfoEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 void transform_tohost_VkDebugUtilsLabelEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsLabelEXT* toTransform)
@@ -7824,6 +10124,30 @@
     }
 }
 
+void transform_tohost_VkDebugUtilsObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectNameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDebugUtilsObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectNameInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 void transform_tohost_VkDebugUtilsMessengerCallbackDataEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsMessengerCallbackDataEXT* toTransform)
@@ -7834,25 +10158,34 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pQueueLabels)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->queueLabelCount; ++i)
+        if (toTransform->pQueueLabels)
         {
-            transform_tohost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pQueueLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->queueLabelCount; ++i)
+            {
+                transform_tohost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pQueueLabels + i));
+            }
         }
     }
-    if (toTransform->pCmdBufLabels)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->cmdBufLabelCount; ++i)
+        if (toTransform->pCmdBufLabels)
         {
-            transform_tohost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pCmdBufLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->cmdBufLabelCount; ++i)
+            {
+                transform_tohost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pCmdBufLabels + i));
+            }
         }
     }
-    if (toTransform->pObjects)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->objectCount; ++i)
+        if (toTransform->pObjects)
         {
-            transform_tohost_VkDebugUtilsObjectNameInfoEXT(resourceTracker, (VkDebugUtilsObjectNameInfoEXT*)(toTransform->pObjects + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->objectCount; ++i)
+            {
+                transform_tohost_VkDebugUtilsObjectNameInfoEXT(resourceTracker, (VkDebugUtilsObjectNameInfoEXT*)(toTransform->pObjects + i));
+            }
         }
     }
 }
@@ -7867,25 +10200,34 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pQueueLabels)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->queueLabelCount; ++i)
+        if (toTransform->pQueueLabels)
         {
-            transform_fromhost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pQueueLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->queueLabelCount; ++i)
+            {
+                transform_fromhost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pQueueLabels + i));
+            }
         }
     }
-    if (toTransform->pCmdBufLabels)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->cmdBufLabelCount; ++i)
+        if (toTransform->pCmdBufLabels)
         {
-            transform_fromhost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pCmdBufLabels + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->cmdBufLabelCount; ++i)
+            {
+                transform_fromhost_VkDebugUtilsLabelEXT(resourceTracker, (VkDebugUtilsLabelEXT*)(toTransform->pCmdBufLabels + i));
+            }
         }
     }
-    if (toTransform->pObjects)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->objectCount; ++i)
+        if (toTransform->pObjects)
         {
-            transform_fromhost_VkDebugUtilsObjectNameInfoEXT(resourceTracker, (VkDebugUtilsObjectNameInfoEXT*)(toTransform->pObjects + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->objectCount; ++i)
+            {
+                transform_fromhost_VkDebugUtilsObjectNameInfoEXT(resourceTracker, (VkDebugUtilsObjectNameInfoEXT*)(toTransform->pObjects + i));
+            }
         }
     }
 }
@@ -7914,6 +10256,30 @@
     }
 }
 
+void transform_tohost_VkDebugUtilsObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectTagInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDebugUtilsObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectTagInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void transform_tohost_VkAndroidHardwareBufferUsageANDROID(
@@ -8068,54 +10434,6 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void transform_tohost_VkSamplerReductionModeCreateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkSamplerReductionModeCreateInfoEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkSamplerReductionModeCreateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkSamplerReductionModeCreateInfoEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
-void transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform)
-{
-    (void)resourceTracker;
-    (void)toTransform;
-    if (toTransform->pNext)
-    {
-        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
-    }
-}
-
 #endif
 #ifdef VK_AMD_gpu_shader_int16
 #endif
@@ -8123,6 +10441,104 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void transform_tohost_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkWriteDescriptorSetInlineUniformBlockEXT(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetInlineUniformBlockEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkWriteDescriptorSetInlineUniformBlockEXT(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetInlineUniformBlockEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -8153,11 +10569,14 @@
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->sampleLocationGridSize));
-    if (toTransform->pSampleLocations)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationsCount; ++i)
+        if (toTransform->pSampleLocations)
         {
-            transform_tohost_VkSampleLocationEXT(resourceTracker, (VkSampleLocationEXT*)(toTransform->pSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationsCount; ++i)
+            {
+                transform_tohost_VkSampleLocationEXT(resourceTracker, (VkSampleLocationEXT*)(toTransform->pSampleLocations + i));
+            }
         }
     }
 }
@@ -8173,11 +10592,14 @@
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
     transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->sampleLocationGridSize));
-    if (toTransform->pSampleLocations)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationsCount; ++i)
+        if (toTransform->pSampleLocations)
         {
-            transform_fromhost_VkSampleLocationEXT(resourceTracker, (VkSampleLocationEXT*)(toTransform->pSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationsCount; ++i)
+            {
+                transform_fromhost_VkSampleLocationEXT(resourceTracker, (VkSampleLocationEXT*)(toTransform->pSampleLocations + i));
+            }
         }
     }
 }
@@ -8228,18 +10650,24 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAttachmentInitialSampleLocations)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentInitialSampleLocationsCount; ++i)
+        if (toTransform->pAttachmentInitialSampleLocations)
         {
-            transform_tohost_VkAttachmentSampleLocationsEXT(resourceTracker, (VkAttachmentSampleLocationsEXT*)(toTransform->pAttachmentInitialSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentInitialSampleLocationsCount; ++i)
+            {
+                transform_tohost_VkAttachmentSampleLocationsEXT(resourceTracker, (VkAttachmentSampleLocationsEXT*)(toTransform->pAttachmentInitialSampleLocations + i));
+            }
         }
     }
-    if (toTransform->pPostSubpassSampleLocations)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->postSubpassSampleLocationsCount; ++i)
+        if (toTransform->pPostSubpassSampleLocations)
         {
-            transform_tohost_VkSubpassSampleLocationsEXT(resourceTracker, (VkSubpassSampleLocationsEXT*)(toTransform->pPostSubpassSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->postSubpassSampleLocationsCount; ++i)
+            {
+                transform_tohost_VkSubpassSampleLocationsEXT(resourceTracker, (VkSubpassSampleLocationsEXT*)(toTransform->pPostSubpassSampleLocations + i));
+            }
         }
     }
 }
@@ -8254,18 +10682,24 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pAttachmentInitialSampleLocations)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentInitialSampleLocationsCount; ++i)
+        if (toTransform->pAttachmentInitialSampleLocations)
         {
-            transform_fromhost_VkAttachmentSampleLocationsEXT(resourceTracker, (VkAttachmentSampleLocationsEXT*)(toTransform->pAttachmentInitialSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->attachmentInitialSampleLocationsCount; ++i)
+            {
+                transform_fromhost_VkAttachmentSampleLocationsEXT(resourceTracker, (VkAttachmentSampleLocationsEXT*)(toTransform->pAttachmentInitialSampleLocations + i));
+            }
         }
     }
-    if (toTransform->pPostSubpassSampleLocations)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->postSubpassSampleLocationsCount; ++i)
+        if (toTransform->pPostSubpassSampleLocations)
         {
-            transform_fromhost_VkSubpassSampleLocationsEXT(resourceTracker, (VkSubpassSampleLocationsEXT*)(toTransform->pPostSubpassSampleLocations + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->postSubpassSampleLocationsCount; ++i)
+            {
+                transform_fromhost_VkSubpassSampleLocationsEXT(resourceTracker, (VkSubpassSampleLocationsEXT*)(toTransform->pPostSubpassSampleLocations + i));
+            }
         }
     }
 }
@@ -8477,8 +10911,236 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void transform_tohost_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void transform_tohost_VkDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDrmFormatModifierPropertiesListEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesListEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pDrmFormatModifierProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->drmFormatModifierCount; ++i)
+            {
+                transform_tohost_VkDrmFormatModifierPropertiesEXT(resourceTracker, (VkDrmFormatModifierPropertiesEXT*)(toTransform->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkDrmFormatModifierPropertiesListEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesListEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pDrmFormatModifierProperties)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->drmFormatModifierCount; ++i)
+            {
+                transform_fromhost_VkDrmFormatModifierPropertiesEXT(resourceTracker, (VkDrmFormatModifierPropertiesEXT*)(toTransform->pDrmFormatModifierProperties + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageDrmFormatModifierListCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierListCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageDrmFormatModifierListCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierListCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pPlaneLayouts)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->drmFormatModifierPlaneCount; ++i)
+            {
+                transform_tohost_VkSubresourceLayout(resourceTracker, (VkSubresourceLayout*)(toTransform->pPlaneLayouts + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pPlaneLayouts)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->drmFormatModifierPlaneCount; ++i)
+            {
+                transform_fromhost_VkSubresourceLayout(resourceTracker, (VkSubresourceLayout*)(toTransform->pPlaneLayouts + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkImageDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImageDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_validation_cache
 void transform_tohost_VkValidationCacheCreateInfoEXT(
     ResourceTracker* resourceTracker,
@@ -8530,9 +11192,73 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+#endif
+#ifdef VK_EXT_shader_viewport_index_layer
+#endif
+#ifdef VK_NV_shading_rate_image
+void transform_tohost_VkShadingRatePaletteNV(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform)
+    VkShadingRatePaletteNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkShadingRatePaletteNV(
+    ResourceTracker* resourceTracker,
+    VkShadingRatePaletteNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pShadingRatePalettes)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_tohost_VkShadingRatePaletteNV(resourceTracker, (VkShadingRatePaletteNV*)(toTransform->pShadingRatePalettes + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pShadingRatePalettes)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->viewportCount; ++i)
+            {
+                transform_fromhost_VkShadingRatePaletteNV(resourceTracker, (VkShadingRatePaletteNV*)(toTransform->pShadingRatePalettes + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8542,9 +11268,9 @@
     }
 }
 
-void transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
+void transform_fromhost_VkPhysicalDeviceShadingRateImageFeaturesNV(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform)
+    VkPhysicalDeviceShadingRateImageFeaturesNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8554,9 +11280,133 @@
     }
 }
 
-void transform_tohost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void transform_tohost_VkPhysicalDeviceShadingRateImagePropertiesNV(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform)
+    VkPhysicalDeviceShadingRateImagePropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->shadingRateTexelSize));
+}
+
+void transform_fromhost_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShadingRateImagePropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkExtent2D(resourceTracker, (VkExtent2D*)(&toTransform->shadingRateTexelSize));
+}
+
+void transform_tohost_VkCoarseSampleLocationNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleLocationNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkCoarseSampleLocationNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleLocationNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkCoarseSampleOrderCustomNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleOrderCustomNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pSampleLocations)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationCount; ++i)
+            {
+                transform_tohost_VkCoarseSampleLocationNV(resourceTracker, (VkCoarseSampleLocationNV*)(toTransform->pSampleLocations + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkCoarseSampleOrderCustomNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleOrderCustomNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pSampleLocations)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->sampleLocationCount; ++i)
+            {
+                transform_fromhost_VkCoarseSampleLocationNV(resourceTracker, (VkCoarseSampleLocationNV*)(toTransform->pSampleLocations + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pCustomSampleOrders)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->customSampleOrderCount; ++i)
+            {
+                transform_tohost_VkCoarseSampleOrderCustomNV(resourceTracker, (VkCoarseSampleOrderCustomNV*)(toTransform->pCustomSampleOrders + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pCustomSampleOrders)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->customSampleOrderCount; ++i)
+            {
+                transform_fromhost_VkCoarseSampleOrderCustomNV(resourceTracker, (VkCoarseSampleOrderCustomNV*)(toTransform->pCustomSampleOrders + i));
+            }
+        }
+    }
+}
+
+#endif
+#ifdef VK_NV_ray_tracing
+void transform_tohost_VkRayTracingShaderGroupCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkRayTracingShaderGroupCreateInfoNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8566,9 +11416,9 @@
     }
 }
 
-void transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
+void transform_fromhost_VkRayTracingShaderGroupCreateInfoNV(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform)
+    VkRayTracingShaderGroupCreateInfoNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8578,9 +11428,73 @@
     }
 }
 
-void transform_tohost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void transform_tohost_VkRayTracingPipelineCreateInfoNV(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform)
+    VkRayTracingPipelineCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->groupCount; ++i)
+            {
+                transform_tohost_VkRayTracingShaderGroupCreateInfoNV(resourceTracker, (VkRayTracingShaderGroupCreateInfoNV*)(toTransform->pGroups + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkRayTracingPipelineCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->groupCount; ++i)
+            {
+                transform_fromhost_VkRayTracingShaderGroupCreateInfoNV(resourceTracker, (VkRayTracingShaderGroupCreateInfoNV*)(toTransform->pGroups + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkGeometryTrianglesNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryTrianglesNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8590,9 +11504,9 @@
     }
 }
 
-void transform_fromhost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
+void transform_fromhost_VkGeometryTrianglesNV(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform)
+    VkGeometryTrianglesNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8602,9 +11516,9 @@
     }
 }
 
-void transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void transform_tohost_VkGeometryAABBNV(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform)
+    VkGeometryAABBNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8614,9 +11528,9 @@
     }
 }
 
-void transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
+void transform_fromhost_VkGeometryAABBNV(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform)
+    VkGeometryAABBNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8626,9 +11540,151 @@
     }
 }
 
-void transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void transform_tohost_VkGeometryDataNV(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform)
+    VkGeometryDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkGeometryTrianglesNV(resourceTracker, (VkGeometryTrianglesNV*)(&toTransform->triangles));
+    transform_tohost_VkGeometryAABBNV(resourceTracker, (VkGeometryAABBNV*)(&toTransform->aabbs));
+}
+
+void transform_fromhost_VkGeometryDataNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryDataNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkGeometryTrianglesNV(resourceTracker, (VkGeometryTrianglesNV*)(&toTransform->triangles));
+    transform_fromhost_VkGeometryAABBNV(resourceTracker, (VkGeometryAABBNV*)(&toTransform->aabbs));
+}
+
+void transform_tohost_VkGeometryNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkGeometryDataNV(resourceTracker, (VkGeometryDataNV*)(&toTransform->geometry));
+}
+
+void transform_fromhost_VkGeometryNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkGeometryDataNV(resourceTracker, (VkGeometryDataNV*)(&toTransform->geometry));
+}
+
+void transform_tohost_VkAccelerationStructureInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGeometries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->geometryCount; ++i)
+            {
+                transform_tohost_VkGeometryNV(resourceTracker, (VkGeometryNV*)(toTransform->pGeometries + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkAccelerationStructureInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGeometries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->geometryCount; ++i)
+            {
+                transform_fromhost_VkGeometryNV(resourceTracker, (VkGeometryNV*)(toTransform->pGeometries + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkAccelerationStructureCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkAccelerationStructureInfoNV(resourceTracker, (VkAccelerationStructureInfoNV*)(&toTransform->info));
+}
+
+void transform_fromhost_VkAccelerationStructureCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkAccelerationStructureInfoNV(resourceTracker, (VkAccelerationStructureInfoNV*)(&toTransform->info));
+}
+
+void transform_tohost_VkBindAccelerationStructureMemoryInfoNV(
+    ResourceTracker* resourceTracker,
+    VkBindAccelerationStructureMemoryInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_tohost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBindAccelerationStructureMemoryInfoNV(
+    ResourceTracker* resourceTracker,
+    VkBindAccelerationStructureMemoryInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    resourceTracker->deviceMemoryTransform_fromhost((VkDeviceMemory*)&toTransform->memory, 1, (VkDeviceSize*)&toTransform->memoryOffset, 1, (VkDeviceSize*)nullptr, 0, (uint32_t*)nullptr, 0, (uint32_t*)nullptr, 0);
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkWriteDescriptorSetAccelerationStructureNV(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetAccelerationStructureNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8638,9 +11694,157 @@
     }
 }
 
-void transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
+void transform_fromhost_VkWriteDescriptorSetAccelerationStructureNV(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform)
+    VkWriteDescriptorSetAccelerationStructureNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAccelerationStructureMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMemoryRequirementsInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAccelerationStructureMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMemoryRequirementsInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceRayTracingPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRayTracingPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkTransformMatrixKHR(
+    ResourceTracker* resourceTracker,
+    VkTransformMatrixKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkTransformMatrixKHR(
+    ResourceTracker* resourceTracker,
+    VkTransformMatrixKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkAabbPositionsKHR(
+    ResourceTracker* resourceTracker,
+    VkAabbPositionsKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkAabbPositionsKHR(
+    ResourceTracker* resourceTracker,
+    VkAabbPositionsKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkAccelerationStructureInstanceKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInstanceKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkTransformMatrixKHR(resourceTracker, (VkTransformMatrixKHR*)(&toTransform->transform));
+}
+
+void transform_fromhost_VkAccelerationStructureInstanceKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInstanceKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkTransformMatrixKHR(resourceTracker, (VkTransformMatrixKHR*)(&toTransform->transform));
+}
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void transform_tohost_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toTransform)
 {
     (void)resourceTracker;
     (void)toTransform;
@@ -8651,7 +11855,57 @@
 }
 
 #endif
-#ifdef VK_EXT_shader_viewport_index_layer
+#ifdef VK_EXT_filter_cubic
+void transform_tohost_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
 #endif
 #ifdef VK_EXT_global_priority
 void transform_tohost_VkDeviceQueueGlobalPriorityCreateInfoEXT(
@@ -8757,6 +12011,58 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void transform_tohost_VkPipelineCompilerControlCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkPipelineCompilerControlCreateInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineCompilerControlCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkPipelineCompilerControlCreateInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void transform_tohost_VkCalibratedTimestampInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkCalibratedTimestampInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCalibratedTimestampInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkCalibratedTimestampInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void transform_tohost_VkPhysicalDeviceShaderCorePropertiesAMD(
     ResourceTracker* resourceTracker,
@@ -8783,6 +12089,32 @@
 }
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void transform_tohost_VkDeviceMemoryOverallocationCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOverallocationCreateInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDeviceMemoryOverallocationCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOverallocationCreateInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void transform_tohost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     ResourceTracker* resourceTracker,
@@ -8834,11 +12166,14 @@
     {
         transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pVertexBindingDivisors)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDivisorCount; ++i)
+        if (toTransform->pVertexBindingDivisors)
         {
-            transform_tohost_VkVertexInputBindingDivisorDescriptionEXT(resourceTracker, (VkVertexInputBindingDivisorDescriptionEXT*)(toTransform->pVertexBindingDivisors + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDivisorCount; ++i)
+            {
+                transform_tohost_VkVertexInputBindingDivisorDescriptionEXT(resourceTracker, (VkVertexInputBindingDivisorDescriptionEXT*)(toTransform->pVertexBindingDivisors + i));
+            }
         }
     }
 }
@@ -8853,11 +12188,134 @@
     {
         transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
     }
-    if (toTransform->pVertexBindingDivisors)
+    if ((toTransform) != nullptr)
     {
-        for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDivisorCount; ++i)
+        if (toTransform->pVertexBindingDivisors)
         {
-            transform_fromhost_VkVertexInputBindingDivisorDescriptionEXT(resourceTracker, (VkVertexInputBindingDivisorDescriptionEXT*)(toTransform->pVertexBindingDivisors + i));
+            for (uint32_t i = 0; i < (uint32_t)toTransform->vertexBindingDivisorCount; ++i)
+            {
+                transform_fromhost_VkVertexInputBindingDivisorDescriptionEXT(resourceTracker, (VkVertexInputBindingDivisorDescriptionEXT*)(toTransform->pVertexBindingDivisors + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GGP_frame_token
+void transform_tohost_VkPresentFrameTokenGGP(
+    ResourceTracker* resourceTracker,
+    VkPresentFrameTokenGGP* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPresentFrameTokenGGP(
+    ResourceTracker* resourceTracker,
+    VkPresentFrameTokenGGP* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void transform_tohost_VkPipelineCreationFeedbackEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkPipelineCreationFeedbackEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPipelineCreationFeedbackCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pPipelineCreationFeedback)
+    {
+        transform_tohost_VkPipelineCreationFeedbackEXT(resourceTracker, (VkPipelineCreationFeedbackEXT*)(toTransform->pPipelineCreationFeedback));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pPipelineStageCreationFeedbacks)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->pipelineStageCreationFeedbackCount; ++i)
+            {
+                transform_tohost_VkPipelineCreationFeedbackEXT(resourceTracker, (VkPipelineCreationFeedbackEXT*)(toTransform->pPipelineStageCreationFeedbacks + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineCreationFeedbackCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if (toTransform->pPipelineCreationFeedback)
+    {
+        transform_fromhost_VkPipelineCreationFeedbackEXT(resourceTracker, (VkPipelineCreationFeedbackEXT*)(toTransform->pPipelineCreationFeedback));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pPipelineStageCreationFeedbacks)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->pipelineStageCreationFeedbackCount; ++i)
+            {
+                transform_fromhost_VkPipelineCreationFeedbackEXT(resourceTracker, (VkPipelineCreationFeedbackEXT*)(toTransform->pPipelineStageCreationFeedbacks + i));
+            }
         }
     }
 }
@@ -8865,6 +12323,220 @@
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void transform_tohost_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_mesh_shader
+void transform_tohost_VkPhysicalDeviceMeshShaderFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMeshShaderFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceMeshShaderPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMeshShaderPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDrawMeshTasksIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkDrawMeshTasksIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDrawMeshTasksIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkDrawMeshTasksIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void transform_tohost_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void transform_tohost_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void transform_tohost_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pExclusiveScissors)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->exclusiveScissorCount; ++i)
+            {
+                transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pExclusiveScissors + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pExclusiveScissors)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->exclusiveScissorCount; ++i)
+            {
+                transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(toTransform->pExclusiveScissors + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void transform_tohost_VkQueueFamilyCheckpointPropertiesNV(
     ResourceTracker* resourceTracker,
@@ -8915,7 +12587,339 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void transform_tohost_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_INTEL_performance_query
+void transform_tohost_VkPerformanceValueDataINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueDataINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkPerformanceValueDataINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueDataINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkPerformanceValueINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkPerformanceValueDataINTEL(resourceTracker, (VkPerformanceValueDataINTEL*)(&toTransform->data));
+}
+
+void transform_fromhost_VkPerformanceValueINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkPerformanceValueDataINTEL(resourceTracker, (VkPerformanceValueDataINTEL*)(&toTransform->data));
+}
+
+void transform_tohost_VkInitializePerformanceApiInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkInitializePerformanceApiInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkInitializePerformanceApiInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkInitializePerformanceApiInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceMarkerInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPerformanceMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceMarkerInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceStreamMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceStreamMarkerInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPerformanceStreamMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceStreamMarkerInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceOverrideInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceOverrideInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPerformanceOverrideInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceOverrideInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPerformanceConfigurationAcquireInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceConfigurationAcquireInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPerformanceConfigurationAcquireInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceConfigurationAcquireInfoINTEL* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void transform_tohost_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void transform_tohost_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    ResourceTracker* resourceTracker,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    ResourceTracker* resourceTracker,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void transform_tohost_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_metal_surface
+void transform_tohost_VkMetalSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMetalSurfaceCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMetalSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMetalSurfaceCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void transform_tohost_VkImportColorBufferGOOGLE(
@@ -8991,23 +12995,2619 @@
 }
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void transform_tohost_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void transform_tohost_VkPhysicalDeviceShaderCoreProperties2AMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderCoreProperties2AMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderCoreProperties2AMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderCoreProperties2AMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void transform_tohost_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void transform_tohost_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void transform_tohost_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void transform_tohost_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkMemoryPriorityAllocateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMemoryPriorityAllocateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkMemoryPriorityAllocateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMemoryPriorityAllocateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void transform_tohost_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkBufferDeviceAddressCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkBufferDeviceAddressCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_tooling_info
+void transform_tohost_VkPhysicalDeviceToolPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceToolPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceToolPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceToolPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+#endif
+#ifdef VK_EXT_validation_features
+void transform_tohost_VkValidationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkValidationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void transform_tohost_VkCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkCooperativeMatrixPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkCooperativeMatrixPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void transform_tohost_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineCoverageReductionStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageReductionStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineCoverageReductionStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageReductionStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkFramebufferMixedSamplesCombinationNV(
+    ResourceTracker* resourceTracker,
+    VkFramebufferMixedSamplesCombinationNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkFramebufferMixedSamplesCombinationNV(
+    ResourceTracker* resourceTracker,
+    VkFramebufferMixedSamplesCombinationNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void transform_tohost_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void transform_tohost_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void transform_tohost_VkSurfaceFullScreenExclusiveInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSurfaceFullScreenExclusiveInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_headless_surface
+void transform_tohost_VkHeadlessSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkHeadlessSurfaceCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkHeadlessSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkHeadlessSurfaceCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void transform_tohost_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineRasterizationLineStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationLineStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineRasterizationLineStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationLineStateCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void transform_tohost_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_host_query_reset
+#endif
+#ifdef VK_EXT_index_type_uint8
+void transform_tohost_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void transform_tohost_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void transform_tohost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void transform_tohost_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkGraphicsShaderGroupCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsShaderGroupCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
+        }
+    }
+    if (toTransform->pVertexInputState)
+    {
+        transform_tohost_VkPipelineVertexInputStateCreateInfo(resourceTracker, (VkPipelineVertexInputStateCreateInfo*)(toTransform->pVertexInputState));
+    }
+    if (toTransform->pTessellationState)
+    {
+        transform_tohost_VkPipelineTessellationStateCreateInfo(resourceTracker, (VkPipelineTessellationStateCreateInfo*)(toTransform->pTessellationState));
+    }
+}
+
+void transform_fromhost_VkGraphicsShaderGroupCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsShaderGroupCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
+        }
+    }
+    if (toTransform->pVertexInputState)
+    {
+        transform_fromhost_VkPipelineVertexInputStateCreateInfo(resourceTracker, (VkPipelineVertexInputStateCreateInfo*)(toTransform->pVertexInputState));
+    }
+    if (toTransform->pTessellationState)
+    {
+        transform_fromhost_VkPipelineTessellationStateCreateInfo(resourceTracker, (VkPipelineTessellationStateCreateInfo*)(toTransform->pTessellationState));
+    }
+}
+
+void transform_tohost_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->groupCount; ++i)
+            {
+                transform_tohost_VkGraphicsShaderGroupCreateInfoNV(resourceTracker, (VkGraphicsShaderGroupCreateInfoNV*)(toTransform->pGroups + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->groupCount; ++i)
+            {
+                transform_fromhost_VkGraphicsShaderGroupCreateInfoNV(resourceTracker, (VkGraphicsShaderGroupCreateInfoNV*)(toTransform->pGroups + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkBindShaderGroupIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindShaderGroupIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkBindShaderGroupIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindShaderGroupIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkBindIndexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindIndexBufferIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkBindIndexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindIndexBufferIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkBindVertexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindVertexBufferIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkBindVertexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindVertexBufferIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkSetStateFlagsIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkSetStateFlagsIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkSetStateFlagsIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkSetStateFlagsIndirectCommandNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkIndirectCommandsStreamNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsStreamNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkIndirectCommandsStreamNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsStreamNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkIndirectCommandsLayoutTokenNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutTokenNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkIndirectCommandsLayoutTokenNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutTokenNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkIndirectCommandsLayoutCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pTokens)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->tokenCount; ++i)
+            {
+                transform_tohost_VkIndirectCommandsLayoutTokenNV(resourceTracker, (VkIndirectCommandsLayoutTokenNV*)(toTransform->pTokens + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkIndirectCommandsLayoutCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pTokens)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->tokenCount; ++i)
+            {
+                transform_fromhost_VkIndirectCommandsLayoutTokenNV(resourceTracker, (VkIndirectCommandsLayoutTokenNV*)(toTransform->pTokens + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkGeneratedCommandsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStreams)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->streamCount; ++i)
+            {
+                transform_tohost_VkIndirectCommandsStreamNV(resourceTracker, (VkIndirectCommandsStreamNV*)(toTransform->pStreams + i));
+            }
+        }
+    }
+}
+
+void transform_fromhost_VkGeneratedCommandsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStreams)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->streamCount; ++i)
+            {
+                transform_fromhost_VkIndirectCommandsStreamNV(resourceTracker, (VkIndirectCommandsStreamNV*)(toTransform->pStreams + i));
+            }
+        }
+    }
+}
+
+void transform_tohost_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void transform_tohost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void transform_tohost_VkRenderPassTransformBeginInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkRenderPassTransformBeginInfoQCOM* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkRenderPassTransformBeginInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkRenderPassTransformBeginInfoQCOM* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
+}
+
+void transform_fromhost_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkRect2D(resourceTracker, (VkRect2D*)(&toTransform->renderArea));
+}
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void transform_tohost_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceMemoryReportCallbackDataEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryReportCallbackDataEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDeviceMemoryReportCallbackDataEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryReportCallbackDataEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_robustness2
+void transform_tohost_VkPhysicalDeviceRobustness2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRobustness2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceRobustness2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2PropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRobustness2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2PropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void transform_tohost_VkSamplerCustomBorderColorCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerCustomBorderColorCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkClearColorValue(resourceTracker, (VkClearColorValue*)(&toTransform->customBorderColor));
+}
+
+void transform_fromhost_VkSamplerCustomBorderColorCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerCustomBorderColorCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkClearColorValue(resourceTracker, (VkClearColorValue*)(&toTransform->customBorderColor));
+}
+
+void transform_tohost_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void transform_tohost_VkPhysicalDevicePrivateDataFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrivateDataFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePrivateDataFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrivateDataFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDevicePrivateDataCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDevicePrivateDataCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDevicePrivateDataCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDevicePrivateDataCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPrivateDataSlotCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPrivateDataSlotCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPrivateDataSlotCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPrivateDataSlotCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void transform_tohost_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void transform_tohost_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkDeviceDiagnosticsConfigCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDeviceDiagnosticsConfigCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDeviceDiagnosticsConfigCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDeviceDiagnosticsConfigCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void transform_tohost_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void transform_tohost_VkCopyCommandTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCopyCommandTransformInfoQCOM* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCopyCommandTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCopyCommandTransformInfoQCOM* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_image_robustness
+void transform_tohost_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_4444_formats
+void transform_tohost_VkPhysicalDevice4444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice4444FormatsFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDevice4444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice4444FormatsFeaturesEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void transform_tohost_VkDirectFBSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDirectFBSurfaceCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkDirectFBSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDirectFBSurfaceCreateInfoEXT* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void transform_tohost_VkDeviceOrHostAddressKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDeviceOrHostAddressKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkDeviceOrHostAddressConstKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressConstKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkDeviceOrHostAddressConstKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressConstKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkAccelerationStructureBuildRangeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildRangeInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkAccelerationStructureBuildRangeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildRangeInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkAccelerationStructureGeometryTrianglesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryTrianglesDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->vertexData));
+    transform_tohost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->indexData));
+    transform_tohost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->transformData));
+}
+
+void transform_fromhost_VkAccelerationStructureGeometryTrianglesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryTrianglesDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->vertexData));
+    transform_fromhost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->indexData));
+    transform_fromhost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->transformData));
+}
+
+void transform_tohost_VkAccelerationStructureGeometryAabbsDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryAabbsDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->data));
+}
+
+void transform_fromhost_VkAccelerationStructureGeometryAabbsDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryAabbsDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->data));
+}
+
+void transform_tohost_VkAccelerationStructureGeometryInstancesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryInstancesDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->data));
+}
+
+void transform_fromhost_VkAccelerationStructureGeometryInstancesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryInstancesDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->data));
+}
+
+void transform_tohost_VkAccelerationStructureGeometryDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_tohost_VkAccelerationStructureGeometryTrianglesDataKHR(resourceTracker, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&toTransform->triangles));
+    transform_tohost_VkAccelerationStructureGeometryAabbsDataKHR(resourceTracker, (VkAccelerationStructureGeometryAabbsDataKHR*)(&toTransform->aabbs));
+    transform_tohost_VkAccelerationStructureGeometryInstancesDataKHR(resourceTracker, (VkAccelerationStructureGeometryInstancesDataKHR*)(&toTransform->instances));
+}
+
+void transform_fromhost_VkAccelerationStructureGeometryDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryDataKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    transform_fromhost_VkAccelerationStructureGeometryTrianglesDataKHR(resourceTracker, (VkAccelerationStructureGeometryTrianglesDataKHR*)(&toTransform->triangles));
+    transform_fromhost_VkAccelerationStructureGeometryAabbsDataKHR(resourceTracker, (VkAccelerationStructureGeometryAabbsDataKHR*)(&toTransform->aabbs));
+    transform_fromhost_VkAccelerationStructureGeometryInstancesDataKHR(resourceTracker, (VkAccelerationStructureGeometryInstancesDataKHR*)(&toTransform->instances));
+}
+
+void transform_tohost_VkAccelerationStructureGeometryKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkAccelerationStructureGeometryDataKHR(resourceTracker, (VkAccelerationStructureGeometryDataKHR*)(&toTransform->geometry));
+}
+
+void transform_fromhost_VkAccelerationStructureGeometryKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkAccelerationStructureGeometryDataKHR(resourceTracker, (VkAccelerationStructureGeometryDataKHR*)(&toTransform->geometry));
+}
+
+void transform_tohost_VkAccelerationStructureBuildGeometryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildGeometryInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGeometries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->geometryCount; ++i)
+            {
+                transform_tohost_VkAccelerationStructureGeometryKHR(resourceTracker, (VkAccelerationStructureGeometryKHR*)(toTransform->pGeometries + i));
+            }
+        }
+    }
+    transform_tohost_VkDeviceOrHostAddressKHR(resourceTracker, (VkDeviceOrHostAddressKHR*)(&toTransform->scratchData));
+}
+
+void transform_fromhost_VkAccelerationStructureBuildGeometryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildGeometryInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGeometries)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->geometryCount; ++i)
+            {
+                transform_fromhost_VkAccelerationStructureGeometryKHR(resourceTracker, (VkAccelerationStructureGeometryKHR*)(toTransform->pGeometries + i));
+            }
+        }
+    }
+    transform_fromhost_VkDeviceOrHostAddressKHR(resourceTracker, (VkDeviceOrHostAddressKHR*)(&toTransform->scratchData));
+}
+
+void transform_tohost_VkAccelerationStructureCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAccelerationStructureCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkWriteDescriptorSetAccelerationStructureKHR(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetAccelerationStructureKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkWriteDescriptorSetAccelerationStructureKHR(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetAccelerationStructureKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAccelerationStructureDeviceAddressInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureDeviceAddressInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAccelerationStructureDeviceAddressInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureDeviceAddressInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAccelerationStructureVersionInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureVersionInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAccelerationStructureVersionInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureVersionInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkCopyAccelerationStructureToMemoryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureToMemoryInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkDeviceOrHostAddressKHR(resourceTracker, (VkDeviceOrHostAddressKHR*)(&toTransform->dst));
+}
+
+void transform_fromhost_VkCopyAccelerationStructureToMemoryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureToMemoryInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDeviceOrHostAddressKHR(resourceTracker, (VkDeviceOrHostAddressKHR*)(&toTransform->dst));
+}
+
+void transform_tohost_VkCopyMemoryToAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyMemoryToAccelerationStructureInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_tohost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->src));
+}
+
+void transform_fromhost_VkCopyMemoryToAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyMemoryToAccelerationStructureInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    transform_fromhost_VkDeviceOrHostAddressConstKHR(resourceTracker, (VkDeviceOrHostAddressConstKHR*)(&toTransform->src));
+}
+
+void transform_tohost_VkCopyAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkCopyAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkAccelerationStructureBuildSizesInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildSizesInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkAccelerationStructureBuildSizesInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildSizesInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void transform_tohost_VkRayTracingShaderGroupCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingShaderGroupCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkRayTracingShaderGroupCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingShaderGroupCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkRayTracingPipelineCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_tohost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->groupCount; ++i)
+            {
+                transform_tohost_VkRayTracingShaderGroupCreateInfoKHR(resourceTracker, (VkRayTracingShaderGroupCreateInfoKHR*)(toTransform->pGroups + i));
+            }
+        }
+    }
+    if (toTransform->pLibraryInfo)
+    {
+        transform_tohost_VkPipelineLibraryCreateInfoKHR(resourceTracker, (VkPipelineLibraryCreateInfoKHR*)(toTransform->pLibraryInfo));
+    }
+    if (toTransform->pLibraryInterface)
+    {
+        transform_tohost_VkRayTracingPipelineInterfaceCreateInfoKHR(resourceTracker, (VkRayTracingPipelineInterfaceCreateInfoKHR*)(toTransform->pLibraryInterface));
+    }
+    if (toTransform->pDynamicState)
+    {
+        transform_tohost_VkPipelineDynamicStateCreateInfo(resourceTracker, (VkPipelineDynamicStateCreateInfo*)(toTransform->pDynamicState));
+    }
+}
+
+void transform_fromhost_VkRayTracingPipelineCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineCreateInfoKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pStages)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->stageCount; ++i)
+            {
+                transform_fromhost_VkPipelineShaderStageCreateInfo(resourceTracker, (VkPipelineShaderStageCreateInfo*)(toTransform->pStages + i));
+            }
+        }
+    }
+    if ((toTransform) != nullptr)
+    {
+        if (toTransform->pGroups)
+        {
+            for (uint32_t i = 0; i < (uint32_t)toTransform->groupCount; ++i)
+            {
+                transform_fromhost_VkRayTracingShaderGroupCreateInfoKHR(resourceTracker, (VkRayTracingShaderGroupCreateInfoKHR*)(toTransform->pGroups + i));
+            }
+        }
+    }
+    if (toTransform->pLibraryInfo)
+    {
+        transform_fromhost_VkPipelineLibraryCreateInfoKHR(resourceTracker, (VkPipelineLibraryCreateInfoKHR*)(toTransform->pLibraryInfo));
+    }
+    if (toTransform->pLibraryInterface)
+    {
+        transform_fromhost_VkRayTracingPipelineInterfaceCreateInfoKHR(resourceTracker, (VkRayTracingPipelineInterfaceCreateInfoKHR*)(toTransform->pLibraryInterface));
+    }
+    if (toTransform->pDynamicState)
+    {
+        transform_fromhost_VkPipelineDynamicStateCreateInfo(resourceTracker, (VkPipelineDynamicStateCreateInfo*)(toTransform->pDynamicState));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_tohost_VkStridedDeviceAddressRegionKHR(
+    ResourceTracker* resourceTracker,
+    VkStridedDeviceAddressRegionKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkStridedDeviceAddressRegionKHR(
+    ResourceTracker* resourceTracker,
+    VkStridedDeviceAddressRegionKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_tohost_VkTraceRaysIndirectCommandKHR(
+    ResourceTracker* resourceTracker,
+    VkTraceRaysIndirectCommandKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+void transform_fromhost_VkTraceRaysIndirectCommandKHR(
+    ResourceTracker* resourceTracker,
+    VkTraceRaysIndirectCommandKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+}
+
+#endif
+#ifdef VK_KHR_ray_query
+void transform_tohost_VkPhysicalDeviceRayQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayQueryFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_tohost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
+void transform_fromhost_VkPhysicalDeviceRayQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayQueryFeaturesKHR* toTransform)
+{
+    (void)resourceTracker;
+    (void)toTransform;
+    if (toTransform->pNext)
+    {
+        transform_fromhost_extension_struct(resourceTracker, (void*)(toTransform->pNext));
+    }
+}
+
 #endif
 void transform_tohost_extension_struct(
     ResourceTracker* resourceTracker,
@@ -9121,9 +15721,9 @@
             transform_tohost_VkPhysicalDeviceMultiviewProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            transform_tohost_VkPhysicalDeviceVariablePointerFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceVariablePointersFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -9216,9 +15816,201 @@
             transform_tohost_VkPhysicalDeviceMaintenance3Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            transform_tohost_VkPhysicalDeviceShaderDrawParameterFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceShaderDrawParametersFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceVulkan11Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceVulkan11Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceVulkan12Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceVulkan12Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            transform_tohost_VkImageFormatListCreateInfo(resourceTracker, reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            transform_tohost_VkPhysicalDevice8BitStorageFeatures(resourceTracker, reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceDriverProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceShaderAtomicInt64Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceFloatControlsProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfo(resourceTracker, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceDescriptorIndexingFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceDescriptorIndexingProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfo(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupport(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            transform_tohost_VkSubpassDescriptionDepthStencilResolve(resourceTracker, reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceDepthStencilResolveProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceScalarBlockLayoutFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            transform_tohost_VkImageStencilUsageCreateInfo(resourceTracker, reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            transform_tohost_VkSamplerReductionModeCreateInfo(resourceTracker, reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceVulkanMemoryModelFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceImagelessFramebufferFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            transform_tohost_VkFramebufferAttachmentsCreateInfo(resourceTracker, reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            transform_tohost_VkRenderPassAttachmentBeginInfo(resourceTracker, reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            transform_tohost_VkAttachmentReferenceStencilLayout(resourceTracker, reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            transform_tohost_VkAttachmentDescriptionStencilLayout(resourceTracker, reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceHostQueryResetFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceTimelineSemaphoreFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            transform_tohost_VkPhysicalDeviceTimelineSemaphoreProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            transform_tohost_VkSemaphoreTypeCreateInfo(resourceTracker, reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            transform_tohost_VkTimelineSemaphoreSubmitInfo(resourceTracker, reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            transform_tohost_VkBufferOpaqueCaptureAddressCreateInfo(resourceTracker, reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            transform_tohost_VkMemoryOpaqueCaptureAddressAllocateInfo(resourceTracker, reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
             break;
         }
 #endif
@@ -9317,24 +16109,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            transform_tohost_VkImageFormatListCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
+            transform_tohost_VkPhysicalDevicePerformanceQueryFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            transform_tohost_VkPhysicalDevicePerformanceQueryPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            transform_tohost_VkQueryPoolPerformanceCreateInfoKHR(resourceTracker, reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            transform_tohost_VkPerformanceQuerySubmitInfoKHR(resourceTracker, reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            transform_tohost_VkPhysicalDevice8BitStorageFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
+            transform_tohost_VkPhysicalDevicePortabilitySubsetFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            transform_tohost_VkPhysicalDevicePortabilitySubsetPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceShaderClockFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            transform_tohost_VkFragmentShadingRateAttachmentInfoKHR(resourceTracker, reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            transform_tohost_VkPipelineFragmentShadingRateStateCreateInfoKHR(resourceTracker, reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            transform_tohost_VkSurfaceProtectedCapabilitiesKHR(resourceTracker, reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension_out));
             break;
         }
 #endif
@@ -9376,6 +16231,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceTransformFeedbackFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceTransformFeedbackPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkPipelineRasterizationStateStreamCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -9383,6 +16255,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceCornerSampledImageFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -9421,6 +16300,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            transform_tohost_VkImageViewASTCDecodeModeEXT(resourceTracker, reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceASTCDecodeFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -9492,6 +16390,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceDepthClipEnableFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkPipelineRasterizationDepthClipStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -9521,15 +16431,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            transform_tohost_VkSamplerReductionModeCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            transform_tohost_VkWriteDescriptorSetInlineUniformBlockEXT(resourceTracker, reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -9586,6 +16506,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            transform_tohost_VkDrmFormatModifierPropertiesListEXT(resourceTracker, reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkImageDrmFormatModifierListCreateInfoEXT(resourceTracker, reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkImageDrmFormatModifierExplicitCreateInfoEXT(resourceTracker, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -9593,30 +16547,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPipelineViewportShadingRateImageStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            transform_tohost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceShadingRateImageFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            transform_tohost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
+            transform_tohost_VkPhysicalDeviceShadingRateImagePropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
+            transform_tohost_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
+            transform_tohost_VkWriteDescriptorSetAccelerationStructureNV(resourceTracker, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceRayTracingPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            transform_tohost_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceImageViewImageFormatInfoEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            transform_tohost_VkFilterCubicImageViewImageFormatPropertiesEXT(resourceTracker, reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -9639,6 +16624,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            transform_tohost_VkPipelineCompilerControlCreateInfoAMD(resourceTracker, reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -9646,6 +16638,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            transform_tohost_VkDeviceMemoryOverallocationCreateInfoAMD(resourceTracker, reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -9657,6 +16656,70 @@
             transform_tohost_VkPipelineVertexInputDivisorStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            transform_tohost_VkPresentFrameTokenGGP(resourceTracker, reinterpret_cast<VkPresentFrameTokenGGP*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkPipelineCreationFeedbackCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceMeshShaderFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceMeshShaderPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceShaderImageFootprintFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            transform_tohost_VkPipelineViewportExclusiveScissorStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceExclusiveScissorFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -9665,6 +16728,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            transform_tohost_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            transform_tohost_VkQueryPoolPerformanceQueryCreateInfoINTEL(resourceTracker, reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDevicePCIBusInfoPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            transform_tohost_VkDisplayNativeHdrSurfaceCapabilitiesAMD(resourceTracker, reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            transform_tohost_VkSwapchainDisplayNativeHdrCreateInfoAMD(resourceTracker, reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -9682,6 +16778,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            transform_tohost_VkPhysicalDeviceShaderCoreProperties2AMD(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            transform_tohost_VkPhysicalDeviceCoherentMemoryFeaturesAMD(resourceTracker, reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceMemoryBudgetPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceMemoryPriorityFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            transform_tohost_VkMemoryPriorityAllocateInfoEXT(resourceTracker, reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkBufferDeviceAddressCreateInfoEXT(resourceTracker, reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            transform_tohost_VkValidationFeaturesEXT(resourceTracker, reinterpret_cast<VkValidationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceCooperativeMatrixFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceCooperativeMatrixPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceCoverageReductionModeFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            transform_tohost_VkPipelineCoverageReductionStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            transform_tohost_VkSurfaceFullScreenExclusiveInfoEXT(resourceTracker, reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            transform_tohost_VkSurfaceCapabilitiesFullScreenExclusiveEXT(resourceTracker, reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            transform_tohost_VkSurfaceFullScreenExclusiveWin32InfoEXT(resourceTracker, reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceLineRasterizationFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceLineRasterizationPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkPipelineRasterizationLineStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            transform_tohost_VkGraphicsPipelineShaderGroupsCreateInfoNV(resourceTracker, reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            transform_tohost_VkRenderPassTransformBeginInfoQCOM(resourceTracker, reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            transform_tohost_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkDeviceDeviceMemoryReportCreateInfoEXT(resourceTracker, reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceRobustness2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceRobustness2PropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkSamplerCustomBorderColorCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceCustomBorderColorPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceCustomBorderColorFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDevicePrivateDataFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            transform_tohost_VkDevicePrivateDataCreateInfoEXT(resourceTracker, reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            transform_tohost_VkDeviceDiagnosticsConfigCreateInfoNV(resourceTracker, reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            transform_tohost_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            transform_tohost_VkCopyCommandTransformInfoQCOM(resourceTracker, reinterpret_cast<VkCopyCommandTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDeviceImageRobustnessFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            transform_tohost_VkPhysicalDevice4444FormatsFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            transform_tohost_VkWriteDescriptorSetAccelerationStructureKHR(resourceTracker, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceAccelerationStructureFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceAccelerationStructurePropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            transform_tohost_VkPhysicalDeviceRayQueryFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
         default:
         {
             return;
@@ -9801,9 +17279,9 @@
             transform_fromhost_VkPhysicalDeviceMultiviewProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMultiviewProperties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
         {
-            transform_fromhost_VkPhysicalDeviceVariablePointerFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVariablePointerFeatures*>(structExtension_out));
+            transform_fromhost_VkPhysicalDeviceVariablePointersFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVariablePointersFeatures*>(structExtension_out));
             break;
         }
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
@@ -9896,9 +17374,201 @@
             transform_fromhost_VkPhysicalDeviceMaintenance3Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceMaintenance3Properties*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
         {
-            transform_fromhost_VkPhysicalDeviceShaderDrawParameterFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDrawParameterFeatures*>(structExtension_out));
+            transform_fromhost_VkPhysicalDeviceShaderDrawParametersFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDrawParametersFeatures*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_VERSION_1_2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceVulkan11Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan11Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceVulkan11Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan11Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceVulkan12Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan12Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceVulkan12Properties(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkan12Properties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
+        {
+            transform_fromhost_VkImageFormatListCreateInfo(resourceTracker, reinterpret_cast<VkImageFormatListCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDevice8BitStorageFeatures(resourceTracker, reinterpret_cast<VkPhysicalDevice8BitStorageFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceDriverProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceDriverProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderAtomicInt64Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderAtomicInt64Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceFloatControlsProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceFloatControlsProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
+        {
+            transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfo(resourceTracker, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceDescriptorIndexingProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
+        {
+            transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfo(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
+        {
+            transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupport(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupport*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
+        {
+            transform_fromhost_VkSubpassDescriptionDepthStencilResolve(resourceTracker, reinterpret_cast<VkSubpassDescriptionDepthStencilResolve*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceDepthStencilResolveProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceDepthStencilResolveProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceScalarBlockLayoutFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceScalarBlockLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
+        {
+            transform_fromhost_VkImageStencilUsageCreateInfo(resourceTracker, reinterpret_cast<VkImageStencilUsageCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
+        {
+            transform_fromhost_VkSamplerReductionModeCreateInfo(resourceTracker, reinterpret_cast<VkSamplerReductionModeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceVulkanMemoryModelFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceVulkanMemoryModelFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceImagelessFramebufferFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceImagelessFramebufferFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
+        {
+            transform_fromhost_VkFramebufferAttachmentsCreateInfo(resourceTracker, reinterpret_cast<VkFramebufferAttachmentsCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
+        {
+            transform_fromhost_VkRenderPassAttachmentBeginInfo(resourceTracker, reinterpret_cast<VkRenderPassAttachmentBeginInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceUniformBufferStandardLayoutFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
+        {
+            transform_fromhost_VkAttachmentReferenceStencilLayout(resourceTracker, reinterpret_cast<VkAttachmentReferenceStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
+        {
+            transform_fromhost_VkAttachmentDescriptionStencilLayout(resourceTracker, reinterpret_cast<VkAttachmentDescriptionStencilLayout*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceHostQueryResetFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceHostQueryResetFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceTimelineSemaphoreFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
+        {
+            transform_fromhost_VkPhysicalDeviceTimelineSemaphoreProperties(resourceTracker, reinterpret_cast<VkPhysicalDeviceTimelineSemaphoreProperties*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
+        {
+            transform_fromhost_VkSemaphoreTypeCreateInfo(resourceTracker, reinterpret_cast<VkSemaphoreTypeCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
+        {
+            transform_fromhost_VkTimelineSemaphoreSubmitInfo(resourceTracker, reinterpret_cast<VkTimelineSemaphoreSubmitInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
+        {
+            transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeatures(resourceTracker, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeatures*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
+        {
+            transform_fromhost_VkBufferOpaqueCaptureAddressCreateInfo(resourceTracker, reinterpret_cast<VkBufferOpaqueCaptureAddressCreateInfo*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
+        {
+            transform_fromhost_VkMemoryOpaqueCaptureAddressAllocateInfo(resourceTracker, reinterpret_cast<VkMemoryOpaqueCaptureAddressAllocateInfo*>(structExtension_out));
             break;
         }
 #endif
@@ -9997,24 +17667,87 @@
             break;
         }
 #endif
-#ifdef VK_KHR_image_format_list
-        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR:
+#ifdef VK_KHR_performance_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
         {
-            transform_fromhost_VkImageFormatListCreateInfoKHR(resourceTracker, reinterpret_cast<VkImageFormatListCreateInfoKHR*>(structExtension_out));
+            transform_fromhost_VkPhysicalDevicePerformanceQueryFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePerformanceQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDevicePerformanceQueryPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePerformanceQueryPropertiesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
+        {
+            transform_fromhost_VkQueryPoolPerformanceCreateInfoKHR(resourceTracker, reinterpret_cast<VkQueryPoolPerformanceCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
+        {
+            transform_fromhost_VkPerformanceQuerySubmitInfoKHR(resourceTracker, reinterpret_cast<VkPerformanceQuerySubmitInfoKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_8bit_storage
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR:
+#ifdef VK_KHR_portability_subset
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
         {
-            transform_fromhost_VkPhysicalDevice8BitStorageFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevice8BitStorageFeaturesKHR*>(structExtension_out));
+            transform_fromhost_VkPhysicalDevicePortabilitySubsetFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePortabilitySubsetFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDevicePortabilitySubsetPropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePortabilitySubsetPropertiesKHR*>(structExtension_out));
             break;
         }
 #endif
-#ifdef VK_KHR_shader_float16_int8
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
+#ifdef VK_KHR_shader_clock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
         {
-            transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderFloat16Int8Features*>(structExtension_out));
+            transform_fromhost_VkPhysicalDeviceShaderClockFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderClockFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
+        {
+            transform_fromhost_VkFragmentShadingRateAttachmentInfoKHR(resourceTracker, reinterpret_cast<VkFragmentShadingRateAttachmentInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
+        {
+            transform_fromhost_VkPipelineFragmentShadingRateStateCreateInfoKHR(resourceTracker, reinterpret_cast<VkPipelineFragmentShadingRateStateCreateInfoKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRatePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
+        {
+            transform_fromhost_VkSurfaceProtectedCapabilitiesKHR(resourceTracker, reinterpret_cast<VkSurfaceProtectedCapabilitiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR*>(structExtension_out));
             break;
         }
 #endif
@@ -10056,6 +17789,23 @@
             break;
         }
 #endif
+#ifdef VK_EXT_transform_feedback
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceTransformFeedbackFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTransformFeedbackFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceTransformFeedbackPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTransformFeedbackPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineRasterizationStateStreamCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationStateStreamCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_texture_gather_bias_lod
         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
         {
@@ -10063,6 +17813,13 @@
             break;
         }
 #endif
+#ifdef VK_NV_corner_sampled_image
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceCornerSampledImageFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCornerSampledImageFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_NV_external_memory
         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
         {
@@ -10101,6 +17858,25 @@
             break;
         }
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_astc_decode_mode
+        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
+        {
+            transform_fromhost_VkImageViewASTCDecodeModeEXT(resourceTracker, reinterpret_cast<VkImageViewASTCDecodeModeEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceASTCDecodeFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceASTCDecodeFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_conditional_rendering
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
         {
@@ -10172,6 +17948,18 @@
             break;
         }
 #endif
+#ifdef VK_EXT_depth_clip_enable
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceDepthClipEnableFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDepthClipEnableFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineRasterizationDepthClipStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationDepthClipStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_debug_utils
         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
         {
@@ -10201,15 +17989,25 @@
             break;
         }
 #endif
-#ifdef VK_EXT_sampler_filter_minmax
-        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT:
+#ifdef VK_EXT_inline_uniform_block
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT:
         {
-            transform_fromhost_VkSamplerReductionModeCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerReductionModeCreateInfoEXT*>(structExtension_out));
+            transform_fromhost_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockFeaturesEXT*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT:
         {
-            transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT*>(structExtension_out));
+            transform_fromhost_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceInlineUniformBlockPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT:
+        {
+            transform_fromhost_VkWriteDescriptorSetInlineUniformBlockEXT(resourceTracker, reinterpret_cast<VkWriteDescriptorSetInlineUniformBlockEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorPoolInlineUniformBlockCreateInfoEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -10266,6 +18064,40 @@
             break;
         }
 #endif
+#ifdef VK_NV_shader_sm_builtins
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderSMBuiltinsFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_drm_format_modifier
+        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
+        {
+            transform_fromhost_VkDrmFormatModifierPropertiesListEXT(resourceTracker, reinterpret_cast<VkDrmFormatModifierPropertiesListEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceImageDrmFormatModifierInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkImageDrmFormatModifierListCreateInfoEXT(resourceTracker, reinterpret_cast<VkImageDrmFormatModifierListCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkImageDrmFormatModifierExplicitCreateInfoEXT(resourceTracker, reinterpret_cast<VkImageDrmFormatModifierExplicitCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_validation_cache
         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
         {
@@ -10273,30 +18105,61 @@
             break;
         }
 #endif
-#ifdef VK_EXT_descriptor_indexing
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT:
+#ifdef VK_NV_shading_rate_image
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
         {
-            transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetLayoutBindingFlagsCreateInfoEXT*>(structExtension_out));
+            transform_fromhost_VkPipelineViewportShadingRateImageStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportShadingRateImageStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
         {
-            transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingFeaturesEXT*>(structExtension_out));
+            transform_fromhost_VkPhysicalDeviceShadingRateImageFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShadingRateImageFeaturesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT:
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
         {
-            transform_fromhost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDescriptorIndexingPropertiesEXT*>(structExtension_out));
+            transform_fromhost_VkPhysicalDeviceShadingRateImagePropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShadingRateImagePropertiesNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT:
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
         {
-            transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountAllocateInfoEXT*>(structExtension_out));
+            transform_fromhost_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportCoarseSampleOrderStateCreateInfoNV*>(structExtension_out));
             break;
         }
-        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT:
+#endif
+#ifdef VK_NV_ray_tracing
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
         {
-            transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(resourceTracker, reinterpret_cast<VkDescriptorSetVariableDescriptorCountLayoutSupportEXT*>(structExtension_out));
+            transform_fromhost_VkWriteDescriptorSetAccelerationStructureNV(resourceTracker, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceRayTracingPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_representative_fragment_test
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineRepresentativeFragmentTestStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_filter_cubic
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceImageViewImageFormatInfoEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceImageViewImageFormatInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkFilterCubicImageViewImageFormatPropertiesEXT(resourceTracker, reinterpret_cast<VkFilterCubicImageViewImageFormatPropertiesEXT*>(structExtension_out));
             break;
         }
 #endif
@@ -10319,6 +18182,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
+        {
+            transform_fromhost_VkPipelineCompilerControlCreateInfoAMD(resourceTracker, reinterpret_cast<VkPipelineCompilerControlCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_AMD_shader_core_properties
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
         {
@@ -10326,6 +18196,13 @@
             break;
         }
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
+        {
+            transform_fromhost_VkDeviceMemoryOverallocationCreateInfoAMD(resourceTracker, reinterpret_cast<VkDeviceMemoryOverallocationCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
         {
@@ -10337,6 +18214,70 @@
             transform_fromhost_VkPipelineVertexInputDivisorStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineVertexInputDivisorStateCreateInfoEXT*>(structExtension_out));
             break;
         }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_GGP_frame_token
+        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
+        {
+            transform_fromhost_VkPresentFrameTokenGGP(resourceTracker, reinterpret_cast<VkPresentFrameTokenGGP*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineCreationFeedbackCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineCreationFeedbackCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_compute_shader_derivatives
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceComputeShaderDerivativesFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_mesh_shader
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceMeshShaderFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceMeshShaderFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceMeshShaderPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceMeshShaderPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_shader_image_footprint
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderImageFootprintFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderImageFootprintFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_scissor_exclusive
+        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineViewportExclusiveScissorStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineViewportExclusiveScissorStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceExclusiveScissorFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceExclusiveScissorFeaturesNV*>(structExtension_out));
+            break;
+        }
 #endif
 #ifdef VK_NV_device_diagnostic_checkpoints
         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
@@ -10345,6 +18286,39 @@
             break;
         }
 #endif
+#ifdef VK_INTEL_shader_integer_functions2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_INTEL_performance_query
+        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
+        {
+            transform_fromhost_VkQueryPoolPerformanceQueryCreateInfoINTEL(resourceTracker, reinterpret_cast<VkQueryPoolPerformanceQueryCreateInfoINTEL*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pci_bus_info
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDevicePCIBusInfoPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePCIBusInfoPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_display_native_hdr
+        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
+        {
+            transform_fromhost_VkDisplayNativeHdrSurfaceCapabilitiesAMD(resourceTracker, reinterpret_cast<VkDisplayNativeHdrSurfaceCapabilitiesAMD*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
+        {
+            transform_fromhost_VkSwapchainDisplayNativeHdrCreateInfoAMD(resourceTracker, reinterpret_cast<VkSwapchainDisplayNativeHdrCreateInfoAMD*>(structExtension_out));
+            break;
+        }
+#endif
 #ifdef VK_GOOGLE_color_buffer
         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE:
         {
@@ -10362,6 +18336,388 @@
             break;
         }
 #endif
+#ifdef VK_EXT_subgroup_size_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceSubgroupSizeControlPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_shader_core_properties2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderCoreProperties2AMD(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderCoreProperties2AMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_AMD_device_coherent_memory
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
+        {
+            transform_fromhost_VkPhysicalDeviceCoherentMemoryFeaturesAMD(resourceTracker, reinterpret_cast<VkPhysicalDeviceCoherentMemoryFeaturesAMD*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_image_atomic_int64
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_budget
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceMemoryBudgetPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMemoryBudgetPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_memory_priority
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceMemoryPriorityFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceMemoryPriorityFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
+        {
+            transform_fromhost_VkMemoryPriorityAllocateInfoEXT(resourceTracker, reinterpret_cast<VkMemoryPriorityAllocateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_buffer_device_address
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceBufferDeviceAddressFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkBufferDeviceAddressCreateInfoEXT(resourceTracker, reinterpret_cast<VkBufferDeviceAddressCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_validation_features
+        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
+        {
+            transform_fromhost_VkValidationFeaturesEXT(resourceTracker, reinterpret_cast<VkValidationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_cooperative_matrix
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceCooperativeMatrixFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceCooperativeMatrixPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCooperativeMatrixPropertiesNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceCoverageReductionModeFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceCoverageReductionModeFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineCoverageReductionStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineCoverageReductionStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceYcbcrImageArraysFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
+        {
+            transform_fromhost_VkSurfaceFullScreenExclusiveInfoEXT(resourceTracker, reinterpret_cast<VkSurfaceFullScreenExclusiveInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
+        {
+            transform_fromhost_VkSurfaceCapabilitiesFullScreenExclusiveEXT(resourceTracker, reinterpret_cast<VkSurfaceCapabilitiesFullScreenExclusiveEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
+        {
+            transform_fromhost_VkSurfaceFullScreenExclusiveWin32InfoEXT(resourceTracker, reinterpret_cast<VkSurfaceFullScreenExclusiveWin32InfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_line_rasterization
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceLineRasterizationFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceLineRasterizationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceLineRasterizationPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceLineRasterizationPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkPipelineRasterizationLineStateCreateInfoEXT(resourceTracker, reinterpret_cast<VkPipelineRasterizationLineStateCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_atomic_float
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderAtomicFloatFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_index_type_uint8
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceIndexTypeUint8FeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceExtendedDynamicStateFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_generated_commands
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkGraphicsPipelineShaderGroupsCreateInfoNV(resourceTracker, reinterpret_cast<VkGraphicsPipelineShaderGroupsCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_render_pass_transform
+        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
+        {
+            transform_fromhost_VkRenderPassTransformBeginInfoQCOM(resourceTracker, reinterpret_cast<VkRenderPassTransformBeginInfoQCOM*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
+        {
+            transform_fromhost_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(resourceTracker, reinterpret_cast<VkCommandBufferInheritanceRenderPassTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_device_memory_report
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceDeviceMemoryReportFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkDeviceDeviceMemoryReportCreateInfoEXT(resourceTracker, reinterpret_cast<VkDeviceDeviceMemoryReportCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_robustness2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceRobustness2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceRobustness2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceRobustness2PropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceRobustness2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_custom_border_color
+        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkSamplerCustomBorderColorCreateInfoEXT(resourceTracker, reinterpret_cast<VkSamplerCustomBorderColorCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceCustomBorderColorPropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceCustomBorderColorPropertiesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceCustomBorderColorFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceCustomBorderColorFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_private_data
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDevicePrivateDataFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePrivateDataFeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT:
+        {
+            transform_fromhost_VkDevicePrivateDataCreateInfoEXT(resourceTracker, reinterpret_cast<VkDevicePrivateDataCreateInfoEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_device_diagnostics_config
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceDiagnosticsConfigFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkDeviceDiagnosticsConfigCreateInfoNV(resourceTracker, reinterpret_cast<VkDeviceDiagnosticsConfigCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
+        {
+            transform_fromhost_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(resourceTracker, reinterpret_cast<VkPipelineFragmentShadingRateEnumStateCreateInfoNV*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_fragment_density_map2
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2FeaturesEXT*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceFragmentDensityMap2PropertiesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
+        {
+            transform_fromhost_VkCopyCommandTransformInfoQCOM(resourceTracker, reinterpret_cast<VkCopyCommandTransformInfoQCOM*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_image_robustness
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDeviceImageRobustnessFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDeviceImageRobustnessFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_EXT_4444_formats
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
+        {
+            transform_fromhost_VkPhysicalDevice4444FormatsFeaturesEXT(resourceTracker, reinterpret_cast<VkPhysicalDevice4444FormatsFeaturesEXT*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_acceleration_structure
+        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
+        {
+            transform_fromhost_VkWriteDescriptorSetAccelerationStructureKHR(resourceTracker, reinterpret_cast<VkWriteDescriptorSetAccelerationStructureKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceAccelerationStructureFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceAccelerationStructureFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceAccelerationStructurePropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceAccelerationStructurePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingPipelineFeaturesKHR*>(structExtension_out));
+            break;
+        }
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayTracingPipelinePropertiesKHR*>(structExtension_out));
+            break;
+        }
+#endif
+#ifdef VK_KHR_ray_query
+        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
+        {
+            transform_fromhost_VkPhysicalDeviceRayQueryFeaturesKHR(resourceTracker, reinterpret_cast<VkPhysicalDeviceRayQueryFeaturesKHR*>(structExtension_out));
+            break;
+        }
+#endif
         default:
         {
             return;
diff --git a/system/vulkan_enc/goldfish_vk_transform_guest.h b/system/vulkan_enc/goldfish_vk_transform_guest.h
index 60f542f..9434787 100644
--- a/system/vulkan_enc/goldfish_vk_transform_guest.h
+++ b/system/vulkan_enc/goldfish_vk_transform_guest.h
@@ -35,7 +35,7 @@
 namespace goldfish_vk {
 
 class ResourceTracker;
-#define LIST_TRANSFORMED_TYPES(f) \
+#define LIST_TRIVIAL_TRANSFORMED_TYPES(f) \
 f(VkPhysicalDeviceExternalImageFormatInfo) \
 f(VkPhysicalDeviceExternalBufferInfo) \
 f(VkExternalMemoryImageCreateInfo) \
@@ -44,46 +44,21 @@
 f(VkExternalImageFormatProperties) \
 f(VkExternalBufferProperties) \
 
+#define LIST_NON_TRIVIAL_TRANSFORMED_TYPES(f) \
+f(VkExternalMemoryProperties) \
+
+#define LIST_TRANSFORMED_TYPES(f) \
+LIST_TRIVIAL_TRANSFORMED_TYPES(f) \
+LIST_NON_TRIVIAL_TRANSFORMED_TYPES(f) \
+
 #ifdef VK_VERSION_1_0
-void transform_tohost_VkApplicationInfo(
+void transform_tohost_VkExtent2D(
     ResourceTracker* resourceTracker,
-    VkApplicationInfo* toTransform);
+    VkExtent2D* toTransform);
 
-void transform_fromhost_VkApplicationInfo(
+void transform_fromhost_VkExtent2D(
     ResourceTracker* resourceTracker,
-    VkApplicationInfo* toTransform);
-
-void transform_tohost_VkInstanceCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkInstanceCreateInfo* toTransform);
-
-void transform_fromhost_VkInstanceCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkInstanceCreateInfo* toTransform);
-
-void transform_tohost_VkAllocationCallbacks(
-    ResourceTracker* resourceTracker,
-    VkAllocationCallbacks* toTransform);
-
-void transform_fromhost_VkAllocationCallbacks(
-    ResourceTracker* resourceTracker,
-    VkAllocationCallbacks* toTransform);
-
-void transform_tohost_VkPhysicalDeviceFeatures(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceFeatures* toTransform);
-
-void transform_fromhost_VkPhysicalDeviceFeatures(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceFeatures* toTransform);
-
-void transform_tohost_VkFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkFormatProperties* toTransform);
-
-void transform_fromhost_VkFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkFormatProperties* toTransform);
+    VkExtent2D* toTransform);
 
 void transform_tohost_VkExtent3D(
     ResourceTracker* resourceTracker,
@@ -93,6 +68,126 @@
     ResourceTracker* resourceTracker,
     VkExtent3D* toTransform);
 
+void transform_tohost_VkOffset2D(
+    ResourceTracker* resourceTracker,
+    VkOffset2D* toTransform);
+
+void transform_fromhost_VkOffset2D(
+    ResourceTracker* resourceTracker,
+    VkOffset2D* toTransform);
+
+void transform_tohost_VkOffset3D(
+    ResourceTracker* resourceTracker,
+    VkOffset3D* toTransform);
+
+void transform_fromhost_VkOffset3D(
+    ResourceTracker* resourceTracker,
+    VkOffset3D* toTransform);
+
+void transform_tohost_VkRect2D(
+    ResourceTracker* resourceTracker,
+    VkRect2D* toTransform);
+
+void transform_fromhost_VkRect2D(
+    ResourceTracker* resourceTracker,
+    VkRect2D* toTransform);
+
+void transform_tohost_VkBaseInStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseInStructure* toTransform);
+
+void transform_fromhost_VkBaseInStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseInStructure* toTransform);
+
+void transform_tohost_VkBaseOutStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseOutStructure* toTransform);
+
+void transform_fromhost_VkBaseOutStructure(
+    ResourceTracker* resourceTracker,
+    VkBaseOutStructure* toTransform);
+
+void transform_tohost_VkBufferMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier* toTransform);
+
+void transform_fromhost_VkBufferMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkBufferMemoryBarrier* toTransform);
+
+void transform_tohost_VkDispatchIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDispatchIndirectCommand* toTransform);
+
+void transform_fromhost_VkDispatchIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDispatchIndirectCommand* toTransform);
+
+void transform_tohost_VkDrawIndexedIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndexedIndirectCommand* toTransform);
+
+void transform_fromhost_VkDrawIndexedIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndexedIndirectCommand* toTransform);
+
+void transform_tohost_VkDrawIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndirectCommand* toTransform);
+
+void transform_fromhost_VkDrawIndirectCommand(
+    ResourceTracker* resourceTracker,
+    VkDrawIndirectCommand* toTransform);
+
+void transform_tohost_VkImageSubresourceRange(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceRange* toTransform);
+
+void transform_fromhost_VkImageSubresourceRange(
+    ResourceTracker* resourceTracker,
+    VkImageSubresourceRange* toTransform);
+
+void transform_tohost_VkImageMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier* toTransform);
+
+void transform_fromhost_VkImageMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkImageMemoryBarrier* toTransform);
+
+void transform_tohost_VkMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier* toTransform);
+
+void transform_fromhost_VkMemoryBarrier(
+    ResourceTracker* resourceTracker,
+    VkMemoryBarrier* toTransform);
+
+void transform_tohost_VkAllocationCallbacks(
+    ResourceTracker* resourceTracker,
+    VkAllocationCallbacks* toTransform);
+
+void transform_fromhost_VkAllocationCallbacks(
+    ResourceTracker* resourceTracker,
+    VkAllocationCallbacks* toTransform);
+
+void transform_tohost_VkApplicationInfo(
+    ResourceTracker* resourceTracker,
+    VkApplicationInfo* toTransform);
+
+void transform_fromhost_VkApplicationInfo(
+    ResourceTracker* resourceTracker,
+    VkApplicationInfo* toTransform);
+
+void transform_tohost_VkFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties* toTransform);
+
+void transform_fromhost_VkFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkFormatProperties* toTransform);
+
 void transform_tohost_VkImageFormatProperties(
     ResourceTracker* resourceTracker,
     VkImageFormatProperties* toTransform);
@@ -101,6 +196,38 @@
     ResourceTracker* resourceTracker,
     VkImageFormatProperties* toTransform);
 
+void transform_tohost_VkInstanceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkInstanceCreateInfo* toTransform);
+
+void transform_fromhost_VkInstanceCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkInstanceCreateInfo* toTransform);
+
+void transform_tohost_VkMemoryHeap(
+    ResourceTracker* resourceTracker,
+    VkMemoryHeap* toTransform);
+
+void transform_fromhost_VkMemoryHeap(
+    ResourceTracker* resourceTracker,
+    VkMemoryHeap* toTransform);
+
+void transform_tohost_VkMemoryType(
+    ResourceTracker* resourceTracker,
+    VkMemoryType* toTransform);
+
+void transform_fromhost_VkMemoryType(
+    ResourceTracker* resourceTracker,
+    VkMemoryType* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFeatures* toTransform);
+
 void transform_tohost_VkPhysicalDeviceLimits(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceLimits* toTransform);
@@ -109,6 +236,14 @@
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceLimits* toTransform);
 
+void transform_tohost_VkPhysicalDeviceMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMemoryProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryProperties* toTransform);
+
 void transform_tohost_VkPhysicalDeviceSparseProperties(
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceSparseProperties* toTransform);
@@ -133,30 +268,6 @@
     ResourceTracker* resourceTracker,
     VkQueueFamilyProperties* toTransform);
 
-void transform_tohost_VkMemoryType(
-    ResourceTracker* resourceTracker,
-    VkMemoryType* toTransform);
-
-void transform_fromhost_VkMemoryType(
-    ResourceTracker* resourceTracker,
-    VkMemoryType* toTransform);
-
-void transform_tohost_VkMemoryHeap(
-    ResourceTracker* resourceTracker,
-    VkMemoryHeap* toTransform);
-
-void transform_fromhost_VkMemoryHeap(
-    ResourceTracker* resourceTracker,
-    VkMemoryHeap* toTransform);
-
-void transform_tohost_VkPhysicalDeviceMemoryProperties(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceMemoryProperties* toTransform);
-
-void transform_fromhost_VkPhysicalDeviceMemoryProperties(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceMemoryProperties* toTransform);
-
 void transform_tohost_VkDeviceQueueCreateInfo(
     ResourceTracker* resourceTracker,
     VkDeviceQueueCreateInfo* toTransform);
@@ -197,14 +308,6 @@
     ResourceTracker* resourceTracker,
     VkSubmitInfo* toTransform);
 
-void transform_tohost_VkMemoryAllocateInfo(
-    ResourceTracker* resourceTracker,
-    VkMemoryAllocateInfo* toTransform);
-
-void transform_fromhost_VkMemoryAllocateInfo(
-    ResourceTracker* resourceTracker,
-    VkMemoryAllocateInfo* toTransform);
-
 void transform_tohost_VkMappedMemoryRange(
     ResourceTracker* resourceTracker,
     VkMappedMemoryRange* toTransform);
@@ -213,6 +316,14 @@
     ResourceTracker* resourceTracker,
     VkMappedMemoryRange* toTransform);
 
+void transform_tohost_VkMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateInfo* toTransform);
+
+void transform_fromhost_VkMemoryAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryAllocateInfo* toTransform);
+
 void transform_tohost_VkMemoryRequirements(
     ResourceTracker* resourceTracker,
     VkMemoryRequirements* toTransform);
@@ -221,22 +332,6 @@
     ResourceTracker* resourceTracker,
     VkMemoryRequirements* toTransform);
 
-void transform_tohost_VkSparseImageFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkSparseImageFormatProperties* toTransform);
-
-void transform_fromhost_VkSparseImageFormatProperties(
-    ResourceTracker* resourceTracker,
-    VkSparseImageFormatProperties* toTransform);
-
-void transform_tohost_VkSparseImageMemoryRequirements(
-    ResourceTracker* resourceTracker,
-    VkSparseImageMemoryRequirements* toTransform);
-
-void transform_fromhost_VkSparseImageMemoryRequirements(
-    ResourceTracker* resourceTracker,
-    VkSparseImageMemoryRequirements* toTransform);
-
 void transform_tohost_VkSparseMemoryBind(
     ResourceTracker* resourceTracker,
     VkSparseMemoryBind* toTransform);
@@ -269,14 +364,6 @@
     ResourceTracker* resourceTracker,
     VkImageSubresource* toTransform);
 
-void transform_tohost_VkOffset3D(
-    ResourceTracker* resourceTracker,
-    VkOffset3D* toTransform);
-
-void transform_fromhost_VkOffset3D(
-    ResourceTracker* resourceTracker,
-    VkOffset3D* toTransform);
-
 void transform_tohost_VkSparseImageMemoryBind(
     ResourceTracker* resourceTracker,
     VkSparseImageMemoryBind* toTransform);
@@ -301,6 +388,22 @@
     ResourceTracker* resourceTracker,
     VkBindSparseInfo* toTransform);
 
+void transform_tohost_VkSparseImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkSparseImageFormatProperties* toTransform);
+
+void transform_fromhost_VkSparseImageFormatProperties(
+    ResourceTracker* resourceTracker,
+    VkSparseImageFormatProperties* toTransform);
+
+void transform_tohost_VkSparseImageMemoryRequirements(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryRequirements* toTransform);
+
+void transform_fromhost_VkSparseImageMemoryRequirements(
+    ResourceTracker* resourceTracker,
+    VkSparseImageMemoryRequirements* toTransform);
+
 void transform_tohost_VkFenceCreateInfo(
     ResourceTracker* resourceTracker,
     VkFenceCreateInfo* toTransform);
@@ -373,14 +476,6 @@
     ResourceTracker* resourceTracker,
     VkComponentMapping* toTransform);
 
-void transform_tohost_VkImageSubresourceRange(
-    ResourceTracker* resourceTracker,
-    VkImageSubresourceRange* toTransform);
-
-void transform_fromhost_VkImageSubresourceRange(
-    ResourceTracker* resourceTracker,
-    VkImageSubresourceRange* toTransform);
-
 void transform_tohost_VkImageViewCreateInfo(
     ResourceTracker* resourceTracker,
     VkImageViewCreateInfo* toTransform);
@@ -429,6 +524,14 @@
     ResourceTracker* resourceTracker,
     VkPipelineShaderStageCreateInfo* toTransform);
 
+void transform_tohost_VkComputePipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkComputePipelineCreateInfo* toTransform);
+
+void transform_fromhost_VkComputePipelineCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkComputePipelineCreateInfo* toTransform);
+
 void transform_tohost_VkVertexInputBindingDescription(
     ResourceTracker* resourceTracker,
     VkVertexInputBindingDescription* toTransform);
@@ -477,30 +580,6 @@
     ResourceTracker* resourceTracker,
     VkViewport* toTransform);
 
-void transform_tohost_VkOffset2D(
-    ResourceTracker* resourceTracker,
-    VkOffset2D* toTransform);
-
-void transform_fromhost_VkOffset2D(
-    ResourceTracker* resourceTracker,
-    VkOffset2D* toTransform);
-
-void transform_tohost_VkExtent2D(
-    ResourceTracker* resourceTracker,
-    VkExtent2D* toTransform);
-
-void transform_fromhost_VkExtent2D(
-    ResourceTracker* resourceTracker,
-    VkExtent2D* toTransform);
-
-void transform_tohost_VkRect2D(
-    ResourceTracker* resourceTracker,
-    VkRect2D* toTransform);
-
-void transform_fromhost_VkRect2D(
-    ResourceTracker* resourceTracker,
-    VkRect2D* toTransform);
-
 void transform_tohost_VkPipelineViewportStateCreateInfo(
     ResourceTracker* resourceTracker,
     VkPipelineViewportStateCreateInfo* toTransform);
@@ -573,14 +652,6 @@
     ResourceTracker* resourceTracker,
     VkGraphicsPipelineCreateInfo* toTransform);
 
-void transform_tohost_VkComputePipelineCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkComputePipelineCreateInfo* toTransform);
-
-void transform_fromhost_VkComputePipelineCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkComputePipelineCreateInfo* toTransform);
-
 void transform_tohost_VkPushConstantRange(
     ResourceTracker* resourceTracker,
     VkPushConstantRange* toTransform);
@@ -605,21 +676,29 @@
     ResourceTracker* resourceTracker,
     VkSamplerCreateInfo* toTransform);
 
-void transform_tohost_VkDescriptorSetLayoutBinding(
+void transform_tohost_VkCopyDescriptorSet(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutBinding* toTransform);
+    VkCopyDescriptorSet* toTransform);
 
-void transform_fromhost_VkDescriptorSetLayoutBinding(
+void transform_fromhost_VkCopyDescriptorSet(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutBinding* toTransform);
+    VkCopyDescriptorSet* toTransform);
 
-void transform_tohost_VkDescriptorSetLayoutCreateInfo(
+void transform_tohost_VkDescriptorBufferInfo(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutCreateInfo* toTransform);
+    VkDescriptorBufferInfo* toTransform);
 
-void transform_fromhost_VkDescriptorSetLayoutCreateInfo(
+void transform_fromhost_VkDescriptorBufferInfo(
     ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutCreateInfo* toTransform);
+    VkDescriptorBufferInfo* toTransform);
+
+void transform_tohost_VkDescriptorImageInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorImageInfo* toTransform);
+
+void transform_fromhost_VkDescriptorImageInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorImageInfo* toTransform);
 
 void transform_tohost_VkDescriptorPoolSize(
     ResourceTracker* resourceTracker,
@@ -645,21 +724,21 @@
     ResourceTracker* resourceTracker,
     VkDescriptorSetAllocateInfo* toTransform);
 
-void transform_tohost_VkDescriptorImageInfo(
+void transform_tohost_VkDescriptorSetLayoutBinding(
     ResourceTracker* resourceTracker,
-    VkDescriptorImageInfo* toTransform);
+    VkDescriptorSetLayoutBinding* toTransform);
 
-void transform_fromhost_VkDescriptorImageInfo(
+void transform_fromhost_VkDescriptorSetLayoutBinding(
     ResourceTracker* resourceTracker,
-    VkDescriptorImageInfo* toTransform);
+    VkDescriptorSetLayoutBinding* toTransform);
 
-void transform_tohost_VkDescriptorBufferInfo(
+void transform_tohost_VkDescriptorSetLayoutCreateInfo(
     ResourceTracker* resourceTracker,
-    VkDescriptorBufferInfo* toTransform);
+    VkDescriptorSetLayoutCreateInfo* toTransform);
 
-void transform_fromhost_VkDescriptorBufferInfo(
+void transform_fromhost_VkDescriptorSetLayoutCreateInfo(
     ResourceTracker* resourceTracker,
-    VkDescriptorBufferInfo* toTransform);
+    VkDescriptorSetLayoutCreateInfo* toTransform);
 
 void transform_tohost_VkWriteDescriptorSet(
     ResourceTracker* resourceTracker,
@@ -669,22 +748,6 @@
     ResourceTracker* resourceTracker,
     VkWriteDescriptorSet* toTransform);
 
-void transform_tohost_VkCopyDescriptorSet(
-    ResourceTracker* resourceTracker,
-    VkCopyDescriptorSet* toTransform);
-
-void transform_fromhost_VkCopyDescriptorSet(
-    ResourceTracker* resourceTracker,
-    VkCopyDescriptorSet* toTransform);
-
-void transform_tohost_VkFramebufferCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkFramebufferCreateInfo* toTransform);
-
-void transform_fromhost_VkFramebufferCreateInfo(
-    ResourceTracker* resourceTracker,
-    VkFramebufferCreateInfo* toTransform);
-
 void transform_tohost_VkAttachmentDescription(
     ResourceTracker* resourceTracker,
     VkAttachmentDescription* toTransform);
@@ -701,6 +764,14 @@
     ResourceTracker* resourceTracker,
     VkAttachmentReference* toTransform);
 
+void transform_tohost_VkFramebufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferCreateInfo* toTransform);
+
+void transform_fromhost_VkFramebufferCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferCreateInfo* toTransform);
+
 void transform_tohost_VkSubpassDescription(
     ResourceTracker* resourceTracker,
     VkSubpassDescription* toTransform);
@@ -773,22 +844,6 @@
     ResourceTracker* resourceTracker,
     VkImageSubresourceLayers* toTransform);
 
-void transform_tohost_VkImageCopy(
-    ResourceTracker* resourceTracker,
-    VkImageCopy* toTransform);
-
-void transform_fromhost_VkImageCopy(
-    ResourceTracker* resourceTracker,
-    VkImageCopy* toTransform);
-
-void transform_tohost_VkImageBlit(
-    ResourceTracker* resourceTracker,
-    VkImageBlit* toTransform);
-
-void transform_fromhost_VkImageBlit(
-    ResourceTracker* resourceTracker,
-    VkImageBlit* toTransform);
-
 void transform_tohost_VkBufferImageCopy(
     ResourceTracker* resourceTracker,
     VkBufferImageCopy* toTransform);
@@ -837,6 +892,22 @@
     ResourceTracker* resourceTracker,
     VkClearRect* toTransform);
 
+void transform_tohost_VkImageBlit(
+    ResourceTracker* resourceTracker,
+    VkImageBlit* toTransform);
+
+void transform_fromhost_VkImageBlit(
+    ResourceTracker* resourceTracker,
+    VkImageBlit* toTransform);
+
+void transform_tohost_VkImageCopy(
+    ResourceTracker* resourceTracker,
+    VkImageCopy* toTransform);
+
+void transform_fromhost_VkImageCopy(
+    ResourceTracker* resourceTracker,
+    VkImageCopy* toTransform);
+
 void transform_tohost_VkImageResolve(
     ResourceTracker* resourceTracker,
     VkImageResolve* toTransform);
@@ -845,30 +916,6 @@
     ResourceTracker* resourceTracker,
     VkImageResolve* toTransform);
 
-void transform_tohost_VkMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkMemoryBarrier* toTransform);
-
-void transform_fromhost_VkMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkMemoryBarrier* toTransform);
-
-void transform_tohost_VkBufferMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkBufferMemoryBarrier* toTransform);
-
-void transform_fromhost_VkBufferMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkBufferMemoryBarrier* toTransform);
-
-void transform_tohost_VkImageMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkImageMemoryBarrier* toTransform);
-
-void transform_fromhost_VkImageMemoryBarrier(
-    ResourceTracker* resourceTracker,
-    VkImageMemoryBarrier* toTransform);
-
 void transform_tohost_VkRenderPassBeginInfo(
     ResourceTracker* resourceTracker,
     VkRenderPassBeginInfo* toTransform);
@@ -877,46 +924,6 @@
     ResourceTracker* resourceTracker,
     VkRenderPassBeginInfo* toTransform);
 
-void transform_tohost_VkDispatchIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDispatchIndirectCommand* toTransform);
-
-void transform_fromhost_VkDispatchIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDispatchIndirectCommand* toTransform);
-
-void transform_tohost_VkDrawIndexedIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndexedIndirectCommand* toTransform);
-
-void transform_fromhost_VkDrawIndexedIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndexedIndirectCommand* toTransform);
-
-void transform_tohost_VkDrawIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndirectCommand* toTransform);
-
-void transform_fromhost_VkDrawIndirectCommand(
-    ResourceTracker* resourceTracker,
-    VkDrawIndirectCommand* toTransform);
-
-void transform_tohost_VkBaseOutStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseOutStructure* toTransform);
-
-void transform_fromhost_VkBaseOutStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseOutStructure* toTransform);
-
-void transform_tohost_VkBaseInStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseInStructure* toTransform);
-
-void transform_fromhost_VkBaseInStructure(
-    ResourceTracker* resourceTracker,
-    VkBaseInStructure* toTransform);
-
 #endif
 #ifdef VK_VERSION_1_1
 void transform_tohost_VkPhysicalDeviceSubgroupProperties(
@@ -1215,13 +1222,17 @@
     ResourceTracker* resourceTracker,
     VkPhysicalDeviceMultiviewProperties* toTransform);
 
-void transform_tohost_VkPhysicalDeviceVariablePointerFeatures(
+void transform_tohost_VkPhysicalDeviceVariablePointersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceVariablePointerFeatures* toTransform);
+    VkPhysicalDeviceVariablePointersFeatures* toTransform);
 
-void transform_fromhost_VkPhysicalDeviceVariablePointerFeatures(
+void transform_fromhost_VkPhysicalDeviceVariablePointersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceVariablePointerFeatures* toTransform);
+    VkPhysicalDeviceVariablePointersFeatures* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceVariablePointersFeatures, transform_tohost_VkPhysicalDeviceVariablePointerFeatures);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceVariablePointersFeatures, transform_fromhost_VkPhysicalDeviceVariablePointerFeatures);
 
 void transform_tohost_VkPhysicalDeviceProtectedMemoryFeatures(
     ResourceTracker* resourceTracker,
@@ -1455,13 +1466,427 @@
     ResourceTracker* resourceTracker,
     VkDescriptorSetLayoutSupport* toTransform);
 
-void transform_tohost_VkPhysicalDeviceShaderDrawParameterFeatures(
+void transform_tohost_VkPhysicalDeviceShaderDrawParametersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderDrawParameterFeatures* toTransform);
+    VkPhysicalDeviceShaderDrawParametersFeatures* toTransform);
 
-void transform_fromhost_VkPhysicalDeviceShaderDrawParameterFeatures(
+void transform_fromhost_VkPhysicalDeviceShaderDrawParametersFeatures(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderDrawParameterFeatures* toTransform);
+    VkPhysicalDeviceShaderDrawParametersFeatures* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceShaderDrawParametersFeatures, transform_tohost_VkPhysicalDeviceShaderDrawParameterFeatures);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceShaderDrawParametersFeatures, transform_fromhost_VkPhysicalDeviceShaderDrawParameterFeatures);
+
+#endif
+#ifdef VK_VERSION_1_2
+void transform_tohost_VkPhysicalDeviceVulkan11Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Features* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVulkan11Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Features* toTransform);
+
+void transform_tohost_VkPhysicalDeviceVulkan11Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Properties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVulkan11Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan11Properties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceVulkan12Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Features* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVulkan12Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Features* toTransform);
+
+void transform_tohost_VkConformanceVersion(
+    ResourceTracker* resourceTracker,
+    VkConformanceVersion* toTransform);
+
+void transform_fromhost_VkConformanceVersion(
+    ResourceTracker* resourceTracker,
+    VkConformanceVersion* toTransform);
+
+void transform_tohost_VkPhysicalDeviceVulkan12Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Properties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVulkan12Properties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkan12Properties* toTransform);
+
+void transform_tohost_VkImageFormatListCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageFormatListCreateInfo* toTransform);
+
+void transform_fromhost_VkImageFormatListCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageFormatListCreateInfo* toTransform);
+
+void transform_tohost_VkAttachmentDescription2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription2* toTransform);
+
+void transform_fromhost_VkAttachmentDescription2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescription2* toTransform);
+
+void transform_tohost_VkAttachmentReference2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference2* toTransform);
+
+void transform_fromhost_VkAttachmentReference2(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReference2* toTransform);
+
+void transform_tohost_VkSubpassDescription2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription2* toTransform);
+
+void transform_fromhost_VkSubpassDescription2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescription2* toTransform);
+
+void transform_tohost_VkSubpassDependency2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency2* toTransform);
+
+void transform_fromhost_VkSubpassDependency2(
+    ResourceTracker* resourceTracker,
+    VkSubpassDependency2* toTransform);
+
+void transform_tohost_VkRenderPassCreateInfo2(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo2* toTransform);
+
+void transform_fromhost_VkRenderPassCreateInfo2(
+    ResourceTracker* resourceTracker,
+    VkRenderPassCreateInfo2* toTransform);
+
+void transform_tohost_VkSubpassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassBeginInfo* toTransform);
+
+void transform_fromhost_VkSubpassBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassBeginInfo* toTransform);
+
+void transform_tohost_VkSubpassEndInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassEndInfo* toTransform);
+
+void transform_fromhost_VkSubpassEndInfo(
+    ResourceTracker* resourceTracker,
+    VkSubpassEndInfo* toTransform);
+
+void transform_tohost_VkPhysicalDevice8BitStorageFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice8BitStorageFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDevice8BitStorageFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice8BitStorageFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDriverProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDriverProperties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDriverProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDriverProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShaderAtomicInt64Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicInt64Features* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderAtomicInt64Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicInt64Features* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderFloat16Int8Features* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderFloat16Int8Features* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFloatControlsProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFloatControlsProperties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFloatControlsProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFloatControlsProperties* toTransform);
+
+void transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* toTransform);
+
+void transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetLayoutBindingFlagsCreateInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDescriptorIndexingProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingProperties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDescriptorIndexingProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDescriptorIndexingProperties* toTransform);
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* toTransform);
+
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountAllocateInfo* toTransform);
+
+void transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* toTransform);
+
+void transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupport(
+    ResourceTracker* resourceTracker,
+    VkDescriptorSetVariableDescriptorCountLayoutSupport* toTransform);
+
+void transform_tohost_VkSubpassDescriptionDepthStencilResolve(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescriptionDepthStencilResolve* toTransform);
+
+void transform_fromhost_VkSubpassDescriptionDepthStencilResolve(
+    ResourceTracker* resourceTracker,
+    VkSubpassDescriptionDepthStencilResolve* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDepthStencilResolveProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthStencilResolveProperties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDepthStencilResolveProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthStencilResolveProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceScalarBlockLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceScalarBlockLayoutFeatures* toTransform);
+
+void transform_tohost_VkImageStencilUsageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageStencilUsageCreateInfo* toTransform);
+
+void transform_fromhost_VkImageStencilUsageCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkImageStencilUsageCreateInfo* toTransform);
+
+void transform_tohost_VkSamplerReductionModeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerReductionModeCreateInfo* toTransform);
+
+void transform_fromhost_VkSamplerReductionModeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSamplerReductionModeCreateInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSamplerFilterMinmaxProperties* toTransform);
+
+void transform_tohost_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVulkanMemoryModelFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVulkanMemoryModelFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceImagelessFramebufferFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImagelessFramebufferFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceImagelessFramebufferFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImagelessFramebufferFeatures* toTransform);
+
+void transform_tohost_VkFramebufferAttachmentImageInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentImageInfo* toTransform);
+
+void transform_fromhost_VkFramebufferAttachmentImageInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentImageInfo* toTransform);
+
+void transform_tohost_VkFramebufferAttachmentsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentsCreateInfo* toTransform);
+
+void transform_fromhost_VkFramebufferAttachmentsCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkFramebufferAttachmentsCreateInfo* toTransform);
+
+void transform_tohost_VkRenderPassAttachmentBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassAttachmentBeginInfo* toTransform);
+
+void transform_fromhost_VkRenderPassAttachmentBeginInfo(
+    ResourceTracker* resourceTracker,
+    VkRenderPassAttachmentBeginInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceUniformBufferStandardLayoutFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures* toTransform);
+
+void transform_tohost_VkAttachmentReferenceStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReferenceStencilLayout* toTransform);
+
+void transform_fromhost_VkAttachmentReferenceStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentReferenceStencilLayout* toTransform);
+
+void transform_tohost_VkAttachmentDescriptionStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescriptionStencilLayout* toTransform);
+
+void transform_fromhost_VkAttachmentDescriptionStencilLayout(
+    ResourceTracker* resourceTracker,
+    VkAttachmentDescriptionStencilLayout* toTransform);
+
+void transform_tohost_VkPhysicalDeviceHostQueryResetFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceHostQueryResetFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceHostQueryResetFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceHostQueryResetFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceTimelineSemaphoreFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreFeatures* toTransform);
+
+void transform_tohost_VkPhysicalDeviceTimelineSemaphoreProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreProperties* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceTimelineSemaphoreProperties(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTimelineSemaphoreProperties* toTransform);
+
+void transform_tohost_VkSemaphoreTypeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreTypeCreateInfo* toTransform);
+
+void transform_fromhost_VkSemaphoreTypeCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreTypeCreateInfo* toTransform);
+
+void transform_tohost_VkTimelineSemaphoreSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkTimelineSemaphoreSubmitInfo* toTransform);
+
+void transform_fromhost_VkTimelineSemaphoreSubmitInfo(
+    ResourceTracker* resourceTracker,
+    VkTimelineSemaphoreSubmitInfo* toTransform);
+
+void transform_tohost_VkSemaphoreWaitInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreWaitInfo* toTransform);
+
+void transform_fromhost_VkSemaphoreWaitInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreWaitInfo* toTransform);
+
+void transform_tohost_VkSemaphoreSignalInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSignalInfo* toTransform);
+
+void transform_fromhost_VkSemaphoreSignalInfo(
+    ResourceTracker* resourceTracker,
+    VkSemaphoreSignalInfo* toTransform);
+
+void transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeatures(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeatures* toTransform);
+
+void transform_tohost_VkBufferDeviceAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressInfo* toTransform);
+
+void transform_fromhost_VkBufferDeviceAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressInfo* toTransform);
+
+void transform_tohost_VkBufferOpaqueCaptureAddressCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferOpaqueCaptureAddressCreateInfo* toTransform);
+
+void transform_fromhost_VkBufferOpaqueCaptureAddressCreateInfo(
+    ResourceTracker* resourceTracker,
+    VkBufferOpaqueCaptureAddressCreateInfo* toTransform);
+
+void transform_tohost_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* toTransform);
+
+void transform_fromhost_VkMemoryOpaqueCaptureAddressAllocateInfo(
+    ResourceTracker* resourceTracker,
+    VkMemoryOpaqueCaptureAddressAllocateInfo* toTransform);
+
+void transform_tohost_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* toTransform);
+
+void transform_fromhost_VkDeviceMemoryOpaqueCaptureAddressInfo(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOpaqueCaptureAddressInfo* toTransform);
 
 #endif
 #ifdef VK_KHR_surface
@@ -1549,14 +1974,6 @@
 
 #endif
 #ifdef VK_KHR_display
-void transform_tohost_VkDisplayPropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayPropertiesKHR* toTransform);
-
-void transform_fromhost_VkDisplayPropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayPropertiesKHR* toTransform);
-
 void transform_tohost_VkDisplayModeParametersKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeParametersKHR* toTransform);
@@ -1565,14 +1982,6 @@
     ResourceTracker* resourceTracker,
     VkDisplayModeParametersKHR* toTransform);
 
-void transform_tohost_VkDisplayModePropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayModePropertiesKHR* toTransform);
-
-void transform_fromhost_VkDisplayModePropertiesKHR(
-    ResourceTracker* resourceTracker,
-    VkDisplayModePropertiesKHR* toTransform);
-
 void transform_tohost_VkDisplayModeCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplayModeCreateInfoKHR* toTransform);
@@ -1581,6 +1990,14 @@
     ResourceTracker* resourceTracker,
     VkDisplayModeCreateInfoKHR* toTransform);
 
+void transform_tohost_VkDisplayModePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModePropertiesKHR* toTransform);
+
+void transform_fromhost_VkDisplayModePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayModePropertiesKHR* toTransform);
+
 void transform_tohost_VkDisplayPlaneCapabilitiesKHR(
     ResourceTracker* resourceTracker,
     VkDisplayPlaneCapabilitiesKHR* toTransform);
@@ -1597,6 +2014,14 @@
     ResourceTracker* resourceTracker,
     VkDisplayPlanePropertiesKHR* toTransform);
 
+void transform_tohost_VkDisplayPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPropertiesKHR* toTransform);
+
+void transform_fromhost_VkDisplayPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkDisplayPropertiesKHR* toTransform);
+
 void transform_tohost_VkDisplaySurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
     VkDisplaySurfaceCreateInfoKHR* toTransform);
@@ -1646,16 +2071,6 @@
     VkWaylandSurfaceCreateInfoKHR* toTransform);
 
 #endif
-#ifdef VK_KHR_mir_surface
-void transform_tohost_VkMirSurfaceCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkMirSurfaceCreateInfoKHR* toTransform);
-
-void transform_fromhost_VkMirSurfaceCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkMirSurfaceCreateInfoKHR* toTransform);
-
-#endif
 #ifdef VK_KHR_android_surface
 void transform_tohost_VkAndroidSurfaceCreateInfoKHR(
     ResourceTracker* resourceTracker,
@@ -1679,20 +2094,140 @@
 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
 #endif
 #ifdef VK_KHR_multiview
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkRenderPassMultiviewCreateInfo, transform_tohost_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkRenderPassMultiviewCreateInfo, transform_fromhost_VkRenderPassMultiviewCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceMultiviewFeatures, transform_tohost_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceMultiviewFeatures, transform_fromhost_VkPhysicalDeviceMultiviewFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceMultiviewProperties, transform_tohost_VkPhysicalDeviceMultiviewPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceMultiviewProperties, transform_fromhost_VkPhysicalDeviceMultiviewPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_get_physical_device_properties2
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceFeatures2, transform_tohost_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceFeatures2, transform_fromhost_VkPhysicalDeviceFeatures2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceProperties2, transform_tohost_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceProperties2, transform_fromhost_VkPhysicalDeviceProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkFormatProperties2, transform_tohost_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkFormatProperties2, transform_fromhost_VkFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkImageFormatProperties2, transform_tohost_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkImageFormatProperties2, transform_fromhost_VkImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceImageFormatInfo2, transform_tohost_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceImageFormatInfo2, transform_fromhost_VkPhysicalDeviceImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkQueueFamilyProperties2, transform_tohost_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkQueueFamilyProperties2, transform_fromhost_VkQueueFamilyProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceMemoryProperties2, transform_tohost_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceMemoryProperties2, transform_fromhost_VkPhysicalDeviceMemoryProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSparseImageFormatProperties2, transform_tohost_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSparseImageFormatProperties2, transform_fromhost_VkSparseImageFormatProperties2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2, transform_tohost_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceSparseImageFormatInfo2, transform_fromhost_VkPhysicalDeviceSparseImageFormatInfo2KHR);
+
 #endif
 #ifdef VK_KHR_device_group
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkMemoryAllocateFlagsInfo, transform_tohost_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkMemoryAllocateFlagsInfo, transform_fromhost_VkMemoryAllocateFlagsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDeviceGroupRenderPassBeginInfo, transform_tohost_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDeviceGroupRenderPassBeginInfo, transform_fromhost_VkDeviceGroupRenderPassBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDeviceGroupCommandBufferBeginInfo, transform_tohost_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDeviceGroupCommandBufferBeginInfo, transform_fromhost_VkDeviceGroupCommandBufferBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDeviceGroupSubmitInfo, transform_tohost_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDeviceGroupSubmitInfo, transform_fromhost_VkDeviceGroupSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDeviceGroupBindSparseInfo, transform_tohost_VkDeviceGroupBindSparseInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDeviceGroupBindSparseInfo, transform_fromhost_VkDeviceGroupBindSparseInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBindBufferMemoryDeviceGroupInfo, transform_tohost_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBindBufferMemoryDeviceGroupInfo, transform_fromhost_VkBindBufferMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBindImageMemoryDeviceGroupInfo, transform_tohost_VkBindImageMemoryDeviceGroupInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBindImageMemoryDeviceGroupInfo, transform_fromhost_VkBindImageMemoryDeviceGroupInfoKHR);
+
 #endif
 #ifdef VK_KHR_shader_draw_parameters
 #endif
 #ifdef VK_KHR_maintenance1
 #endif
 #ifdef VK_KHR_device_group_creation
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceGroupProperties, transform_tohost_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceGroupProperties, transform_fromhost_VkPhysicalDeviceGroupPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDeviceGroupDeviceCreateInfo, transform_tohost_VkDeviceGroupDeviceCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDeviceGroupDeviceCreateInfo, transform_fromhost_VkDeviceGroupDeviceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_capabilities
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExternalMemoryProperties, transform_tohost_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExternalMemoryProperties, transform_fromhost_VkExternalMemoryPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceExternalImageFormatInfo, transform_tohost_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceExternalImageFormatInfo, transform_fromhost_VkPhysicalDeviceExternalImageFormatInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExternalImageFormatProperties, transform_tohost_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExternalImageFormatProperties, transform_fromhost_VkExternalImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceExternalBufferInfo, transform_tohost_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceExternalBufferInfo, transform_fromhost_VkPhysicalDeviceExternalBufferInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExternalBufferProperties, transform_tohost_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExternalBufferProperties, transform_fromhost_VkExternalBufferPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceIDProperties, transform_tohost_VkPhysicalDeviceIDPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceIDProperties, transform_fromhost_VkPhysicalDeviceIDPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_memory
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExternalMemoryImageCreateInfo, transform_tohost_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExternalMemoryImageCreateInfo, transform_fromhost_VkExternalMemoryImageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExternalMemoryBufferCreateInfo, transform_tohost_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExternalMemoryBufferCreateInfo, transform_fromhost_VkExternalMemoryBufferCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExportMemoryAllocateInfo, transform_tohost_VkExportMemoryAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExportMemoryAllocateInfo, transform_fromhost_VkExportMemoryAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_memory_win32
 void transform_tohost_VkImportMemoryWin32HandleInfoKHR(
@@ -1765,8 +2300,20 @@
 
 #endif
 #ifdef VK_KHR_external_semaphore_capabilities
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceExternalSemaphoreInfo, transform_tohost_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceExternalSemaphoreInfo, transform_fromhost_VkPhysicalDeviceExternalSemaphoreInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExternalSemaphoreProperties, transform_tohost_VkExternalSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExternalSemaphoreProperties, transform_fromhost_VkExternalSemaphorePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExportSemaphoreCreateInfo, transform_tohost_VkExportSemaphoreCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExportSemaphoreCreateInfo, transform_fromhost_VkExportSemaphoreCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_semaphore_win32
 void transform_tohost_VkImportSemaphoreWin32HandleInfoKHR(
@@ -1830,7 +2377,21 @@
     VkPhysicalDevicePushDescriptorPropertiesKHR* toTransform);
 
 #endif
+#ifdef VK_KHR_shader_float16_int8
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features, transform_tohost_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features, transform_fromhost_VkPhysicalDeviceShaderFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features, transform_tohost_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features, transform_fromhost_VkPhysicalDeviceFloat16Int8FeaturesKHR);
+
+#endif
 #ifdef VK_KHR_16bit_storage
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDevice16BitStorageFeatures, transform_tohost_VkPhysicalDevice16BitStorageFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDevice16BitStorageFeatures, transform_fromhost_VkPhysicalDevice16BitStorageFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_incremental_present
 void transform_tohost_VkRectLayerKHR(
@@ -1859,63 +2420,61 @@
 
 #endif
 #ifdef VK_KHR_descriptor_update_template
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDescriptorUpdateTemplateEntry, transform_tohost_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDescriptorUpdateTemplateEntry, transform_fromhost_VkDescriptorUpdateTemplateEntryKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDescriptorUpdateTemplateCreateInfo, transform_tohost_VkDescriptorUpdateTemplateCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDescriptorUpdateTemplateCreateInfo, transform_fromhost_VkDescriptorUpdateTemplateCreateInfoKHR);
+
+#endif
+#ifdef VK_KHR_imageless_framebuffer
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceImagelessFramebufferFeatures, transform_tohost_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceImagelessFramebufferFeatures, transform_fromhost_VkPhysicalDeviceImagelessFramebufferFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkFramebufferAttachmentsCreateInfo, transform_tohost_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkFramebufferAttachmentsCreateInfo, transform_fromhost_VkFramebufferAttachmentsCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkFramebufferAttachmentImageInfo, transform_tohost_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkFramebufferAttachmentImageInfo, transform_fromhost_VkFramebufferAttachmentImageInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkRenderPassAttachmentBeginInfo, transform_tohost_VkRenderPassAttachmentBeginInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkRenderPassAttachmentBeginInfo, transform_fromhost_VkRenderPassAttachmentBeginInfoKHR);
+
 #endif
 #ifdef VK_KHR_create_renderpass2
-void transform_tohost_VkAttachmentDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentDescription2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkRenderPassCreateInfo2, transform_tohost_VkRenderPassCreateInfo2KHR);
 
-void transform_fromhost_VkAttachmentDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentDescription2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkRenderPassCreateInfo2, transform_fromhost_VkRenderPassCreateInfo2KHR);
 
-void transform_tohost_VkAttachmentReference2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentReference2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkAttachmentDescription2, transform_tohost_VkAttachmentDescription2KHR);
 
-void transform_fromhost_VkAttachmentReference2KHR(
-    ResourceTracker* resourceTracker,
-    VkAttachmentReference2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAttachmentDescription2, transform_fromhost_VkAttachmentDescription2KHR);
 
-void transform_tohost_VkSubpassDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDescription2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkAttachmentReference2, transform_tohost_VkAttachmentReference2KHR);
 
-void transform_fromhost_VkSubpassDescription2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDescription2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAttachmentReference2, transform_fromhost_VkAttachmentReference2KHR);
 
-void transform_tohost_VkSubpassDependency2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDependency2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSubpassDescription2, transform_tohost_VkSubpassDescription2KHR);
 
-void transform_fromhost_VkSubpassDependency2KHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassDependency2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSubpassDescription2, transform_fromhost_VkSubpassDescription2KHR);
 
-void transform_tohost_VkRenderPassCreateInfo2KHR(
-    ResourceTracker* resourceTracker,
-    VkRenderPassCreateInfo2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSubpassDependency2, transform_tohost_VkSubpassDependency2KHR);
 
-void transform_fromhost_VkRenderPassCreateInfo2KHR(
-    ResourceTracker* resourceTracker,
-    VkRenderPassCreateInfo2KHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSubpassDependency2, transform_fromhost_VkSubpassDependency2KHR);
 
-void transform_tohost_VkSubpassBeginInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassBeginInfoKHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSubpassBeginInfo, transform_tohost_VkSubpassBeginInfoKHR);
 
-void transform_fromhost_VkSubpassBeginInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassBeginInfoKHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSubpassBeginInfo, transform_fromhost_VkSubpassBeginInfoKHR);
 
-void transform_tohost_VkSubpassEndInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassEndInfoKHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSubpassEndInfo, transform_tohost_VkSubpassEndInfoKHR);
 
-void transform_fromhost_VkSubpassEndInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkSubpassEndInfoKHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSubpassEndInfo, transform_fromhost_VkSubpassEndInfoKHR);
 
 #endif
 #ifdef VK_KHR_shared_presentable_image
@@ -1929,8 +2488,20 @@
 
 #endif
 #ifdef VK_KHR_external_fence_capabilities
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceExternalFenceInfo, transform_tohost_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceExternalFenceInfo, transform_fromhost_VkPhysicalDeviceExternalFenceInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExternalFenceProperties, transform_tohost_VkExternalFencePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExternalFenceProperties, transform_fromhost_VkExternalFencePropertiesKHR);
+
 #endif
 #ifdef VK_KHR_external_fence
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkExportFenceCreateInfo, transform_tohost_VkExportFenceCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkExportFenceCreateInfo, transform_fromhost_VkExportFenceCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_external_fence_win32
 void transform_tohost_VkImportFenceWin32HandleInfoKHR(
@@ -1976,7 +2547,93 @@
     VkFenceGetFdInfoKHR* toTransform);
 
 #endif
+#ifdef VK_KHR_performance_query
+void transform_tohost_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePerformanceQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryFeaturesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePerformanceQueryPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePerformanceQueryPropertiesKHR* toTransform);
+
+void transform_tohost_VkPerformanceCounterKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterKHR* toTransform);
+
+void transform_fromhost_VkPerformanceCounterKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterKHR* toTransform);
+
+void transform_tohost_VkPerformanceCounterDescriptionKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterDescriptionKHR* toTransform);
+
+void transform_fromhost_VkPerformanceCounterDescriptionKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterDescriptionKHR* toTransform);
+
+void transform_tohost_VkQueryPoolPerformanceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkQueryPoolPerformanceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceCreateInfoKHR* toTransform);
+
+void transform_tohost_VkPerformanceCounterResultKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterResultKHR* toTransform);
+
+void transform_fromhost_VkPerformanceCounterResultKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceCounterResultKHR* toTransform);
+
+void transform_tohost_VkAcquireProfilingLockInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAcquireProfilingLockInfoKHR* toTransform);
+
+void transform_fromhost_VkAcquireProfilingLockInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAcquireProfilingLockInfoKHR* toTransform);
+
+void transform_tohost_VkPerformanceQuerySubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceQuerySubmitInfoKHR* toTransform);
+
+void transform_fromhost_VkPerformanceQuerySubmitInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPerformanceQuerySubmitInfoKHR* toTransform);
+
+#endif
 #ifdef VK_KHR_maintenance2
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDevicePointClippingProperties, transform_tohost_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDevicePointClippingProperties, transform_fromhost_VkPhysicalDevicePointClippingPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkRenderPassInputAttachmentAspectCreateInfo, transform_tohost_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkRenderPassInputAttachmentAspectCreateInfo, transform_fromhost_VkRenderPassInputAttachmentAspectCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkInputAttachmentAspectReference, transform_tohost_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkInputAttachmentAspectReference, transform_fromhost_VkInputAttachmentAspectReferenceKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkImageViewUsageCreateInfo, transform_tohost_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkImageViewUsageCreateInfo, transform_fromhost_VkImageViewUsageCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPipelineTessellationDomainOriginStateCreateInfo, transform_tohost_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPipelineTessellationDomainOriginStateCreateInfo, transform_fromhost_VkPipelineTessellationDomainOriginStateCreateInfoKHR);
+
 #endif
 #ifdef VK_KHR_get_surface_capabilities2
 void transform_tohost_VkPhysicalDeviceSurfaceInfo2KHR(
@@ -2005,6 +2662,14 @@
 
 #endif
 #ifdef VK_KHR_variable_pointers
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceVariablePointersFeatures, transform_tohost_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceVariablePointersFeatures, transform_fromhost_VkPhysicalDeviceVariablePointerFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceVariablePointersFeatures, transform_tohost_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceVariablePointersFeatures, transform_fromhost_VkPhysicalDeviceVariablePointersFeaturesKHR);
+
 #endif
 #ifdef VK_KHR_get_display_properties2
 void transform_tohost_VkDisplayProperties2KHR(
@@ -2049,49 +2714,467 @@
 
 #endif
 #ifdef VK_KHR_dedicated_allocation
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkMemoryDedicatedRequirements, transform_tohost_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkMemoryDedicatedRequirements, transform_fromhost_VkMemoryDedicatedRequirementsKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkMemoryDedicatedAllocateInfo, transform_tohost_VkMemoryDedicatedAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkMemoryDedicatedAllocateInfo, transform_fromhost_VkMemoryDedicatedAllocateInfoKHR);
+
 #endif
 #ifdef VK_KHR_storage_buffer_storage_class
 #endif
 #ifdef VK_KHR_relaxed_block_layout
 #endif
 #ifdef VK_KHR_get_memory_requirements2
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBufferMemoryRequirementsInfo2, transform_tohost_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBufferMemoryRequirementsInfo2, transform_fromhost_VkBufferMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkImageMemoryRequirementsInfo2, transform_tohost_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkImageMemoryRequirementsInfo2, transform_fromhost_VkImageMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkImageSparseMemoryRequirementsInfo2, transform_tohost_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkImageSparseMemoryRequirementsInfo2, transform_fromhost_VkImageSparseMemoryRequirementsInfo2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkMemoryRequirements2, transform_tohost_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkMemoryRequirements2, transform_fromhost_VkMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSparseImageMemoryRequirements2, transform_tohost_VkSparseImageMemoryRequirements2KHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSparseImageMemoryRequirements2, transform_fromhost_VkSparseImageMemoryRequirements2KHR);
+
 #endif
 #ifdef VK_KHR_image_format_list
-void transform_tohost_VkImageFormatListCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkImageFormatListCreateInfoKHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkImageFormatListCreateInfo, transform_tohost_VkImageFormatListCreateInfoKHR);
 
-void transform_fromhost_VkImageFormatListCreateInfoKHR(
-    ResourceTracker* resourceTracker,
-    VkImageFormatListCreateInfoKHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkImageFormatListCreateInfo, transform_fromhost_VkImageFormatListCreateInfoKHR);
 
 #endif
 #ifdef VK_KHR_sampler_ycbcr_conversion
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSamplerYcbcrConversionCreateInfo, transform_tohost_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSamplerYcbcrConversionCreateInfo, transform_fromhost_VkSamplerYcbcrConversionCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSamplerYcbcrConversionInfo, transform_tohost_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSamplerYcbcrConversionInfo, transform_fromhost_VkSamplerYcbcrConversionInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBindImagePlaneMemoryInfo, transform_tohost_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBindImagePlaneMemoryInfo, transform_fromhost_VkBindImagePlaneMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkImagePlaneMemoryRequirementsInfo, transform_tohost_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkImagePlaneMemoryRequirementsInfo, transform_fromhost_VkImagePlaneMemoryRequirementsInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceSamplerYcbcrConversionFeatures, transform_tohost_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceSamplerYcbcrConversionFeatures, transform_fromhost_VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSamplerYcbcrConversionImageFormatProperties, transform_tohost_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSamplerYcbcrConversionImageFormatProperties, transform_fromhost_VkSamplerYcbcrConversionImageFormatPropertiesKHR);
+
 #endif
 #ifdef VK_KHR_bind_memory2
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBindBufferMemoryInfo, transform_tohost_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBindBufferMemoryInfo, transform_fromhost_VkBindBufferMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBindImageMemoryInfo, transform_tohost_VkBindImageMemoryInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBindImageMemoryInfo, transform_fromhost_VkBindImageMemoryInfoKHR);
+
+#endif
+#ifdef VK_KHR_portability_subset
+void transform_tohost_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePortabilitySubsetFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetFeaturesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePortabilitySubsetPropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePortabilitySubsetPropertiesKHR* toTransform);
+
 #endif
 #ifdef VK_KHR_maintenance3
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceMaintenance3Properties, transform_tohost_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceMaintenance3Properties, transform_fromhost_VkPhysicalDeviceMaintenance3PropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDescriptorSetLayoutSupport, transform_tohost_VkDescriptorSetLayoutSupportKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDescriptorSetLayoutSupport, transform_fromhost_VkDescriptorSetLayoutSupportKHR);
+
 #endif
 #ifdef VK_KHR_draw_indirect_count
 #endif
-#ifdef VK_KHR_8bit_storage
-void transform_tohost_VkPhysicalDevice8BitStorageFeaturesKHR(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDevice8BitStorageFeaturesKHR* toTransform);
+#ifdef VK_KHR_shader_subgroup_extended_types
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, transform_tohost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
 
-void transform_fromhost_VkPhysicalDevice8BitStorageFeaturesKHR(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDevice8BitStorageFeaturesKHR* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, transform_fromhost_VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR);
 
 #endif
-#ifdef VK_KHR_shader_float16_int8
-void transform_tohost_VkPhysicalDeviceShaderFloat16Int8Features(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderFloat16Int8Features* toTransform);
+#ifdef VK_KHR_8bit_storage
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDevice8BitStorageFeatures, transform_tohost_VkPhysicalDevice8BitStorageFeaturesKHR);
 
-void transform_fromhost_VkPhysicalDeviceShaderFloat16Int8Features(
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDevice8BitStorageFeatures, transform_fromhost_VkPhysicalDevice8BitStorageFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_atomic_int64
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceShaderAtomicInt64Features, transform_tohost_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceShaderAtomicInt64Features, transform_fromhost_VkPhysicalDeviceShaderAtomicInt64FeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_clock
+void transform_tohost_VkPhysicalDeviceShaderClockFeaturesKHR(
     ResourceTracker* resourceTracker,
-    VkPhysicalDeviceShaderFloat16Int8Features* toTransform);
+    VkPhysicalDeviceShaderClockFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderClockFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderClockFeaturesKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_driver_properties
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkConformanceVersion, transform_tohost_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkConformanceVersion, transform_fromhost_VkConformanceVersionKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceDriverProperties, transform_tohost_VkPhysicalDeviceDriverPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceDriverProperties, transform_fromhost_VkPhysicalDeviceDriverPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_shader_float_controls
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceFloatControlsProperties, transform_tohost_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceFloatControlsProperties, transform_fromhost_VkPhysicalDeviceFloatControlsPropertiesKHR);
+
+#endif
+#ifdef VK_KHR_depth_stencil_resolve
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSubpassDescriptionDepthStencilResolve, transform_tohost_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSubpassDescriptionDepthStencilResolve, transform_fromhost_VkSubpassDescriptionDepthStencilResolveKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceDepthStencilResolveProperties, transform_tohost_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceDepthStencilResolveProperties, transform_fromhost_VkPhysicalDeviceDepthStencilResolvePropertiesKHR);
+
+#endif
+#ifdef VK_KHR_swapchain_mutable_format
+#endif
+#ifdef VK_KHR_timeline_semaphore
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceTimelineSemaphoreFeatures, transform_tohost_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceTimelineSemaphoreFeatures, transform_fromhost_VkPhysicalDeviceTimelineSemaphoreFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceTimelineSemaphoreProperties, transform_tohost_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceTimelineSemaphoreProperties, transform_fromhost_VkPhysicalDeviceTimelineSemaphorePropertiesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSemaphoreTypeCreateInfo, transform_tohost_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSemaphoreTypeCreateInfo, transform_fromhost_VkSemaphoreTypeCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkTimelineSemaphoreSubmitInfo, transform_tohost_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkTimelineSemaphoreSubmitInfo, transform_fromhost_VkTimelineSemaphoreSubmitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSemaphoreWaitInfo, transform_tohost_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSemaphoreWaitInfo, transform_fromhost_VkSemaphoreWaitInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSemaphoreSignalInfo, transform_tohost_VkSemaphoreSignalInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSemaphoreSignalInfo, transform_fromhost_VkSemaphoreSignalInfoKHR);
+
+#endif
+#ifdef VK_KHR_vulkan_memory_model
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceVulkanMemoryModelFeatures, transform_tohost_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceVulkanMemoryModelFeatures, transform_fromhost_VkPhysicalDeviceVulkanMemoryModelFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_shader_terminate_invocation
+void transform_tohost_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_fragment_shading_rate
+void transform_tohost_VkFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFragmentShadingRateAttachmentInfoKHR* toTransform);
+
+void transform_fromhost_VkFragmentShadingRateAttachmentInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkFragmentShadingRateAttachmentInfoKHR* toTransform);
+
+void transform_tohost_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkPipelineFragmentShadingRateStateCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateStateCreateInfoKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateFeaturesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRatePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRatePropertiesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_spirv_1_4
+#endif
+#ifdef VK_KHR_surface_protected_capabilities
+void transform_tohost_VkSurfaceProtectedCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceProtectedCapabilitiesKHR* toTransform);
+
+void transform_fromhost_VkSurfaceProtectedCapabilitiesKHR(
+    ResourceTracker* resourceTracker,
+    VkSurfaceProtectedCapabilitiesKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_separate_depth_stencil_layouts
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, transform_tohost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, transform_fromhost_VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkAttachmentReferenceStencilLayout, transform_tohost_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAttachmentReferenceStencilLayout, transform_fromhost_VkAttachmentReferenceStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkAttachmentDescriptionStencilLayout, transform_tohost_VkAttachmentDescriptionStencilLayoutKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAttachmentDescriptionStencilLayout, transform_fromhost_VkAttachmentDescriptionStencilLayoutKHR);
+
+#endif
+#ifdef VK_KHR_uniform_buffer_standard_layout
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, transform_tohost_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceUniformBufferStandardLayoutFeatures, transform_fromhost_VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR);
+
+#endif
+#ifdef VK_KHR_buffer_device_address
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeatures, transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeatures, transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeaturesKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBufferDeviceAddressInfo, transform_tohost_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBufferDeviceAddressInfo, transform_fromhost_VkBufferDeviceAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBufferOpaqueCaptureAddressCreateInfo, transform_tohost_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBufferOpaqueCaptureAddressCreateInfo, transform_fromhost_VkBufferOpaqueCaptureAddressCreateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkMemoryOpaqueCaptureAddressAllocateInfo, transform_tohost_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkMemoryOpaqueCaptureAddressAllocateInfo, transform_fromhost_VkMemoryOpaqueCaptureAddressAllocateInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDeviceMemoryOpaqueCaptureAddressInfo, transform_tohost_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDeviceMemoryOpaqueCaptureAddressInfo, transform_fromhost_VkDeviceMemoryOpaqueCaptureAddressInfoKHR);
+
+#endif
+#ifdef VK_KHR_deferred_host_operations
+#endif
+#ifdef VK_KHR_pipeline_executable_properties
+void transform_tohost_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR* toTransform);
+
+void transform_tohost_VkPipelineInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineInfoKHR* toTransform);
+
+void transform_fromhost_VkPipelineInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineInfoKHR* toTransform);
+
+void transform_tohost_VkPipelineExecutablePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutablePropertiesKHR* toTransform);
+
+void transform_fromhost_VkPipelineExecutablePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutablePropertiesKHR* toTransform);
+
+void transform_tohost_VkPipelineExecutableInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInfoKHR* toTransform);
+
+void transform_fromhost_VkPipelineExecutableInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInfoKHR* toTransform);
+
+void transform_tohost_VkPipelineExecutableStatisticValueKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticValueKHR* toTransform);
+
+void transform_fromhost_VkPipelineExecutableStatisticValueKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticValueKHR* toTransform);
+
+void transform_tohost_VkPipelineExecutableStatisticKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticKHR* toTransform);
+
+void transform_fromhost_VkPipelineExecutableStatisticKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableStatisticKHR* toTransform);
+
+void transform_tohost_VkPipelineExecutableInternalRepresentationKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInternalRepresentationKHR* toTransform);
+
+void transform_fromhost_VkPipelineExecutableInternalRepresentationKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineExecutableInternalRepresentationKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_pipeline_library
+void transform_tohost_VkPipelineLibraryCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineLibraryCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkPipelineLibraryCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkPipelineLibraryCreateInfoKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_shader_non_semantic_info
+#endif
+#ifdef VK_KHR_copy_commands2
+void transform_tohost_VkBufferCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferCopy2KHR* toTransform);
+
+void transform_fromhost_VkBufferCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferCopy2KHR* toTransform);
+
+void transform_tohost_VkCopyBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferInfo2KHR* toTransform);
+
+void transform_fromhost_VkCopyBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferInfo2KHR* toTransform);
+
+void transform_tohost_VkImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageCopy2KHR* toTransform);
+
+void transform_fromhost_VkImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageCopy2KHR* toTransform);
+
+void transform_tohost_VkCopyImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageInfo2KHR* toTransform);
+
+void transform_fromhost_VkCopyImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageInfo2KHR* toTransform);
+
+void transform_tohost_VkBufferImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferImageCopy2KHR* toTransform);
+
+void transform_fromhost_VkBufferImageCopy2KHR(
+    ResourceTracker* resourceTracker,
+    VkBufferImageCopy2KHR* toTransform);
+
+void transform_tohost_VkCopyBufferToImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferToImageInfo2KHR* toTransform);
+
+void transform_fromhost_VkCopyBufferToImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyBufferToImageInfo2KHR* toTransform);
+
+void transform_tohost_VkCopyImageToBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageToBufferInfo2KHR* toTransform);
+
+void transform_fromhost_VkCopyImageToBufferInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkCopyImageToBufferInfo2KHR* toTransform);
+
+void transform_tohost_VkImageBlit2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageBlit2KHR* toTransform);
+
+void transform_fromhost_VkImageBlit2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageBlit2KHR* toTransform);
+
+void transform_tohost_VkBlitImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkBlitImageInfo2KHR* toTransform);
+
+void transform_fromhost_VkBlitImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkBlitImageInfo2KHR* toTransform);
+
+void transform_tohost_VkImageResolve2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageResolve2KHR* toTransform);
+
+void transform_fromhost_VkImageResolve2KHR(
+    ResourceTracker* resourceTracker,
+    VkImageResolve2KHR* toTransform);
+
+void transform_tohost_VkResolveImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkResolveImageInfo2KHR* toTransform);
+
+void transform_fromhost_VkResolveImageInfo2KHR(
+    ResourceTracker* resourceTracker,
+    VkResolveImageInfo2KHR* toTransform);
 
 #endif
 #ifdef VK_ANDROID_native_buffer
@@ -2188,6 +3271,50 @@
     VkDedicatedAllocationMemoryAllocateInfoNV* toTransform);
 
 #endif
+#ifdef VK_EXT_transform_feedback
+void transform_tohost_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceTransformFeedbackFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceTransformFeedbackPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTransformFeedbackPropertiesEXT* toTransform);
+
+void transform_tohost_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineRasterizationStateStreamCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationStateStreamCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_NVX_image_view_handle
+void transform_tohost_VkImageViewHandleInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewHandleInfoNVX* toTransform);
+
+void transform_fromhost_VkImageViewHandleInfoNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewHandleInfoNVX* toTransform);
+
+void transform_tohost_VkImageViewAddressPropertiesNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewAddressPropertiesNVX* toTransform);
+
+void transform_fromhost_VkImageViewAddressPropertiesNVX(
+    ResourceTracker* resourceTracker,
+    VkImageViewAddressPropertiesNVX* toTransform);
+
+#endif
 #ifdef VK_AMD_draw_indirect_count
 #endif
 #ifdef VK_AMD_negative_viewport_height
@@ -2226,6 +3353,26 @@
 #endif
 #ifdef VK_AMD_shader_image_load_store_lod
 #endif
+#ifdef VK_GGP_stream_descriptor_surface
+void transform_tohost_VkStreamDescriptorSurfaceCreateInfoGGP(
+    ResourceTracker* resourceTracker,
+    VkStreamDescriptorSurfaceCreateInfoGGP* toTransform);
+
+void transform_fromhost_VkStreamDescriptorSurfaceCreateInfoGGP(
+    ResourceTracker* resourceTracker,
+    VkStreamDescriptorSurfaceCreateInfoGGP* toTransform);
+
+#endif
+#ifdef VK_NV_corner_sampled_image
+void transform_tohost_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceCornerSampledImageFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCornerSampledImageFeaturesNV* toTransform);
+
+#endif
 #ifdef VK_IMG_format_pvrtc
 #endif
 #ifdef VK_NV_external_memory_capabilities
@@ -2308,6 +3455,34 @@
 #endif
 #ifdef VK_EXT_shader_subgroup_vote
 #endif
+#ifdef VK_EXT_texture_compression_astc_hdr
+void transform_tohost_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_astc_decode_mode
+void transform_tohost_VkImageViewASTCDecodeModeEXT(
+    ResourceTracker* resourceTracker,
+    VkImageViewASTCDecodeModeEXT* toTransform);
+
+void transform_fromhost_VkImageViewASTCDecodeModeEXT(
+    ResourceTracker* resourceTracker,
+    VkImageViewASTCDecodeModeEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceASTCDecodeFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceASTCDecodeFeaturesEXT* toTransform);
+
+#endif
 #ifdef VK_EXT_conditional_rendering
 void transform_tohost_VkConditionalRenderingBeginInfoEXT(
     ResourceTracker* resourceTracker,
@@ -2334,120 +3509,6 @@
     VkCommandBufferInheritanceConditionalRenderingInfoEXT* toTransform);
 
 #endif
-#ifdef VK_NVX_device_generated_commands
-void transform_tohost_VkDeviceGeneratedCommandsFeaturesNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsFeaturesNVX* toTransform);
-
-void transform_fromhost_VkDeviceGeneratedCommandsFeaturesNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsFeaturesNVX* toTransform);
-
-void transform_tohost_VkDeviceGeneratedCommandsLimitsNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsLimitsNVX* toTransform);
-
-void transform_fromhost_VkDeviceGeneratedCommandsLimitsNVX(
-    ResourceTracker* resourceTracker,
-    VkDeviceGeneratedCommandsLimitsNVX* toTransform);
-
-void transform_tohost_VkIndirectCommandsTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsTokenNVX* toTransform);
-
-void transform_fromhost_VkIndirectCommandsTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsTokenNVX* toTransform);
-
-void transform_tohost_VkIndirectCommandsLayoutTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutTokenNVX* toTransform);
-
-void transform_fromhost_VkIndirectCommandsLayoutTokenNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutTokenNVX* toTransform);
-
-void transform_tohost_VkIndirectCommandsLayoutCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutCreateInfoNVX* toTransform);
-
-void transform_fromhost_VkIndirectCommandsLayoutCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkIndirectCommandsLayoutCreateInfoNVX* toTransform);
-
-void transform_tohost_VkCmdProcessCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdProcessCommandsInfoNVX* toTransform);
-
-void transform_fromhost_VkCmdProcessCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdProcessCommandsInfoNVX* toTransform);
-
-void transform_tohost_VkCmdReserveSpaceForCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdReserveSpaceForCommandsInfoNVX* toTransform);
-
-void transform_fromhost_VkCmdReserveSpaceForCommandsInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkCmdReserveSpaceForCommandsInfoNVX* toTransform);
-
-void transform_tohost_VkObjectTableCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableCreateInfoNVX* toTransform);
-
-void transform_fromhost_VkObjectTableCreateInfoNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableCreateInfoNVX* toTransform);
-
-void transform_tohost_VkObjectTableEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableEntryNVX* toTransform);
-
-void transform_fromhost_VkObjectTableEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableEntryNVX* toTransform);
-
-void transform_tohost_VkObjectTablePipelineEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePipelineEntryNVX* toTransform);
-
-void transform_fromhost_VkObjectTablePipelineEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePipelineEntryNVX* toTransform);
-
-void transform_tohost_VkObjectTableDescriptorSetEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableDescriptorSetEntryNVX* toTransform);
-
-void transform_fromhost_VkObjectTableDescriptorSetEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableDescriptorSetEntryNVX* toTransform);
-
-void transform_tohost_VkObjectTableVertexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableVertexBufferEntryNVX* toTransform);
-
-void transform_fromhost_VkObjectTableVertexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableVertexBufferEntryNVX* toTransform);
-
-void transform_tohost_VkObjectTableIndexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableIndexBufferEntryNVX* toTransform);
-
-void transform_fromhost_VkObjectTableIndexBufferEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTableIndexBufferEntryNVX* toTransform);
-
-void transform_tohost_VkObjectTablePushConstantEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePushConstantEntryNVX* toTransform);
-
-void transform_fromhost_VkObjectTablePushConstantEntryNVX(
-    ResourceTracker* resourceTracker,
-    VkObjectTablePushConstantEntryNVX* toTransform);
-
-#endif
 #ifdef VK_NV_clip_space_w_scaling
 void transform_tohost_VkViewportWScalingNV(
     ResourceTracker* resourceTracker,
@@ -2618,6 +3679,24 @@
     VkPipelineRasterizationConservativeStateCreateInfoEXT* toTransform);
 
 #endif
+#ifdef VK_EXT_depth_clip_enable
+void transform_tohost_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDepthClipEnableFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDepthClipEnableFeaturesEXT* toTransform);
+
+void transform_tohost_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineRasterizationDepthClipStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationDepthClipStateCreateInfoEXT* toTransform);
+
+#endif
 #ifdef VK_EXT_swapchain_colorspace
 #endif
 #ifdef VK_EXT_hdr_metadata
@@ -2658,27 +3737,13 @@
     VkMacOSSurfaceCreateInfoMVK* toTransform);
 
 #endif
+#ifdef VK_MVK_moltenvk
+#endif
 #ifdef VK_EXT_external_memory_dma_buf
 #endif
 #ifdef VK_EXT_queue_family_foreign
 #endif
 #ifdef VK_EXT_debug_utils
-void transform_tohost_VkDebugUtilsObjectNameInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectNameInfoEXT* toTransform);
-
-void transform_fromhost_VkDebugUtilsObjectNameInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectNameInfoEXT* toTransform);
-
-void transform_tohost_VkDebugUtilsObjectTagInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectTagInfoEXT* toTransform);
-
-void transform_fromhost_VkDebugUtilsObjectTagInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDebugUtilsObjectTagInfoEXT* toTransform);
-
 void transform_tohost_VkDebugUtilsLabelEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsLabelEXT* toTransform);
@@ -2687,6 +3752,14 @@
     ResourceTracker* resourceTracker,
     VkDebugUtilsLabelEXT* toTransform);
 
+void transform_tohost_VkDebugUtilsObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectNameInfoEXT* toTransform);
+
+void transform_fromhost_VkDebugUtilsObjectNameInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectNameInfoEXT* toTransform);
+
 void transform_tohost_VkDebugUtilsMessengerCallbackDataEXT(
     ResourceTracker* resourceTracker,
     VkDebugUtilsMessengerCallbackDataEXT* toTransform);
@@ -2703,6 +3776,14 @@
     ResourceTracker* resourceTracker,
     VkDebugUtilsMessengerCreateInfoEXT* toTransform);
 
+void transform_tohost_VkDebugUtilsObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectTagInfoEXT* toTransform);
+
+void transform_fromhost_VkDebugUtilsObjectTagInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDebugUtilsObjectTagInfoEXT* toTransform);
+
 #endif
 #ifdef VK_ANDROID_external_memory_android_hardware_buffer
 void transform_tohost_VkAndroidHardwareBufferUsageANDROID(
@@ -2755,21 +3836,13 @@
 
 #endif
 #ifdef VK_EXT_sampler_filter_minmax
-void transform_tohost_VkSamplerReductionModeCreateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkSamplerReductionModeCreateInfoEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkSamplerReductionModeCreateInfo, transform_tohost_VkSamplerReductionModeCreateInfoEXT);
 
-void transform_fromhost_VkSamplerReductionModeCreateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkSamplerReductionModeCreateInfoEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkSamplerReductionModeCreateInfo, transform_fromhost_VkSamplerReductionModeCreateInfoEXT);
 
-void transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxProperties, transform_tohost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
-void transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxProperties, transform_fromhost_VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT);
 
 #endif
 #ifdef VK_AMD_gpu_shader_int16
@@ -2778,6 +3851,40 @@
 #endif
 #ifdef VK_AMD_shader_fragment_mask
 #endif
+#ifdef VK_EXT_inline_uniform_block
+void transform_tohost_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceInlineUniformBlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceInlineUniformBlockPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceInlineUniformBlockPropertiesEXT* toTransform);
+
+void transform_tohost_VkWriteDescriptorSetInlineUniformBlockEXT(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetInlineUniformBlockEXT* toTransform);
+
+void transform_fromhost_VkWriteDescriptorSetInlineUniformBlockEXT(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetInlineUniformBlockEXT* toTransform);
+
+void transform_tohost_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkDescriptorPoolInlineUniformBlockCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDescriptorPoolInlineUniformBlockCreateInfoEXT* toTransform);
+
+#endif
 #ifdef VK_EXT_shader_stencil_export
 #endif
 #ifdef VK_EXT_sample_locations
@@ -2894,8 +4001,76 @@
 #endif
 #ifdef VK_NV_fill_rectangle
 #endif
+#ifdef VK_NV_shader_sm_builtins
+void transform_tohost_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderSMBuiltinsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsPropertiesNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderSMBuiltinsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderSMBuiltinsFeaturesNV* toTransform);
+
+#endif
 #ifdef VK_EXT_post_depth_coverage
 #endif
+#ifdef VK_EXT_image_drm_format_modifier
+void transform_tohost_VkDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesEXT* toTransform);
+
+void transform_fromhost_VkDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesEXT* toTransform);
+
+void transform_tohost_VkDrmFormatModifierPropertiesListEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesListEXT* toTransform);
+
+void transform_fromhost_VkDrmFormatModifierPropertiesListEXT(
+    ResourceTracker* resourceTracker,
+    VkDrmFormatModifierPropertiesListEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceImageDrmFormatModifierInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageDrmFormatModifierInfoEXT* toTransform);
+
+void transform_tohost_VkImageDrmFormatModifierListCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierListCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkImageDrmFormatModifierListCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierListCreateInfoEXT* toTransform);
+
+void transform_tohost_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkImageDrmFormatModifierExplicitCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierExplicitCreateInfoEXT* toTransform);
+
+void transform_tohost_VkImageDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierPropertiesEXT* toTransform);
+
+void transform_fromhost_VkImageDrmFormatModifierPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkImageDrmFormatModifierPropertiesEXT* toTransform);
+
+#endif
 #ifdef VK_EXT_validation_cache
 void transform_tohost_VkValidationCacheCreateInfoEXT(
     ResourceTracker* resourceTracker,
@@ -2915,49 +4090,259 @@
 
 #endif
 #ifdef VK_EXT_descriptor_indexing
-void transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfo, transform_tohost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetLayoutBindingFlagsCreateInfoEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfo, transform_fromhost_VkDescriptorSetLayoutBindingFlagsCreateInfoEXT);
 
-void transform_tohost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceDescriptorIndexingFeatures, transform_tohost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingFeaturesEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeatures, transform_fromhost_VkPhysicalDeviceDescriptorIndexingFeaturesEXT);
 
-void transform_tohost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceDescriptorIndexingProperties, transform_tohost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void transform_fromhost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT(
-    ResourceTracker* resourceTracker,
-    VkPhysicalDeviceDescriptorIndexingPropertiesEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceDescriptorIndexingProperties, transform_fromhost_VkPhysicalDeviceDescriptorIndexingPropertiesEXT);
 
-void transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfo, transform_tohost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountAllocateInfoEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfo, transform_fromhost_VkDescriptorSetVariableDescriptorCountAllocateInfoEXT);
 
-void transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupport, transform_tohost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
-void transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT(
-    ResourceTracker* resourceTracker,
-    VkDescriptorSetVariableDescriptorCountLayoutSupportEXT* toTransform);
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupport, transform_fromhost_VkDescriptorSetVariableDescriptorCountLayoutSupportEXT);
 
 #endif
 #ifdef VK_EXT_shader_viewport_index_layer
 #endif
+#ifdef VK_NV_shading_rate_image
+void transform_tohost_VkShadingRatePaletteNV(
+    ResourceTracker* resourceTracker,
+    VkShadingRatePaletteNV* toTransform);
+
+void transform_fromhost_VkShadingRatePaletteNV(
+    ResourceTracker* resourceTracker,
+    VkShadingRatePaletteNV* toTransform);
+
+void transform_tohost_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineViewportShadingRateImageStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportShadingRateImageStateCreateInfoNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShadingRateImageFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShadingRateImageFeaturesNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShadingRateImagePropertiesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShadingRateImagePropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShadingRateImagePropertiesNV* toTransform);
+
+void transform_tohost_VkCoarseSampleLocationNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleLocationNV* toTransform);
+
+void transform_fromhost_VkCoarseSampleLocationNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleLocationNV* toTransform);
+
+void transform_tohost_VkCoarseSampleOrderCustomNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleOrderCustomNV* toTransform);
+
+void transform_fromhost_VkCoarseSampleOrderCustomNV(
+    ResourceTracker* resourceTracker,
+    VkCoarseSampleOrderCustomNV* toTransform);
+
+void transform_tohost_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineViewportCoarseSampleOrderStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportCoarseSampleOrderStateCreateInfoNV* toTransform);
+
+#endif
+#ifdef VK_NV_ray_tracing
+void transform_tohost_VkRayTracingShaderGroupCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkRayTracingShaderGroupCreateInfoNV* toTransform);
+
+void transform_fromhost_VkRayTracingShaderGroupCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkRayTracingShaderGroupCreateInfoNV* toTransform);
+
+void transform_tohost_VkRayTracingPipelineCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineCreateInfoNV* toTransform);
+
+void transform_fromhost_VkRayTracingPipelineCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineCreateInfoNV* toTransform);
+
+void transform_tohost_VkGeometryTrianglesNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryTrianglesNV* toTransform);
+
+void transform_fromhost_VkGeometryTrianglesNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryTrianglesNV* toTransform);
+
+void transform_tohost_VkGeometryAABBNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryAABBNV* toTransform);
+
+void transform_fromhost_VkGeometryAABBNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryAABBNV* toTransform);
+
+void transform_tohost_VkGeometryDataNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryDataNV* toTransform);
+
+void transform_fromhost_VkGeometryDataNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryDataNV* toTransform);
+
+void transform_tohost_VkGeometryNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryNV* toTransform);
+
+void transform_fromhost_VkGeometryNV(
+    ResourceTracker* resourceTracker,
+    VkGeometryNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInfoNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInfoNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoNV* toTransform);
+
+void transform_tohost_VkBindAccelerationStructureMemoryInfoNV(
+    ResourceTracker* resourceTracker,
+    VkBindAccelerationStructureMemoryInfoNV* toTransform);
+
+void transform_fromhost_VkBindAccelerationStructureMemoryInfoNV(
+    ResourceTracker* resourceTracker,
+    VkBindAccelerationStructureMemoryInfoNV* toTransform);
+
+void transform_tohost_VkWriteDescriptorSetAccelerationStructureNV(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetAccelerationStructureNV* toTransform);
+
+void transform_fromhost_VkWriteDescriptorSetAccelerationStructureNV(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetAccelerationStructureNV* toTransform);
+
+void transform_tohost_VkAccelerationStructureMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMemoryRequirementsInfoNV* toTransform);
+
+void transform_fromhost_VkAccelerationStructureMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureMemoryRequirementsInfoNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceRayTracingPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPropertiesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRayTracingPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPropertiesNV* toTransform);
+
+void transform_tohost_VkTransformMatrixKHR(
+    ResourceTracker* resourceTracker,
+    VkTransformMatrixKHR* toTransform);
+
+void transform_fromhost_VkTransformMatrixKHR(
+    ResourceTracker* resourceTracker,
+    VkTransformMatrixKHR* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkTransformMatrixKHR, transform_tohost_VkTransformMatrixNV);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkTransformMatrixKHR, transform_fromhost_VkTransformMatrixNV);
+
+void transform_tohost_VkAabbPositionsKHR(
+    ResourceTracker* resourceTracker,
+    VkAabbPositionsKHR* toTransform);
+
+void transform_fromhost_VkAabbPositionsKHR(
+    ResourceTracker* resourceTracker,
+    VkAabbPositionsKHR* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkAabbPositionsKHR, transform_tohost_VkAabbPositionsNV);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAabbPositionsKHR, transform_fromhost_VkAabbPositionsNV);
+
+void transform_tohost_VkAccelerationStructureInstanceKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInstanceKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureInstanceKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureInstanceKHR* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkAccelerationStructureInstanceKHR, transform_tohost_VkAccelerationStructureInstanceNV);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkAccelerationStructureInstanceKHR, transform_fromhost_VkAccelerationStructureInstanceNV);
+
+#endif
+#ifdef VK_NV_representative_fragment_test
+void transform_tohost_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV* toTransform);
+
+void transform_tohost_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineRepresentativeFragmentTestStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineRepresentativeFragmentTestStateCreateInfoNV* toTransform);
+
+#endif
+#ifdef VK_EXT_filter_cubic
+void transform_tohost_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceImageViewImageFormatInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageViewImageFormatInfoEXT* toTransform);
+
+void transform_tohost_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* toTransform);
+
+void transform_fromhost_VkFilterCubicImageViewImageFormatPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkFilterCubicImageViewImageFormatPropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_QCOM_render_pass_shader_resolve
+#endif
 #ifdef VK_EXT_global_priority
 void transform_tohost_VkDeviceQueueGlobalPriorityCreateInfoEXT(
     ResourceTracker* resourceTracker,
@@ -2996,6 +4381,26 @@
 #endif
 #ifdef VK_AMD_buffer_marker
 #endif
+#ifdef VK_AMD_pipeline_compiler_control
+void transform_tohost_VkPipelineCompilerControlCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkPipelineCompilerControlCreateInfoAMD* toTransform);
+
+void transform_fromhost_VkPipelineCompilerControlCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkPipelineCompilerControlCreateInfoAMD* toTransform);
+
+#endif
+#ifdef VK_EXT_calibrated_timestamps
+void transform_tohost_VkCalibratedTimestampInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkCalibratedTimestampInfoEXT* toTransform);
+
+void transform_fromhost_VkCalibratedTimestampInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkCalibratedTimestampInfoEXT* toTransform);
+
+#endif
 #ifdef VK_AMD_shader_core_properties
 void transform_tohost_VkPhysicalDeviceShaderCorePropertiesAMD(
     ResourceTracker* resourceTracker,
@@ -3006,6 +4411,16 @@
     VkPhysicalDeviceShaderCorePropertiesAMD* toTransform);
 
 #endif
+#ifdef VK_AMD_memory_overallocation_behavior
+void transform_tohost_VkDeviceMemoryOverallocationCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOverallocationCreateInfoAMD* toTransform);
+
+void transform_fromhost_VkDeviceMemoryOverallocationCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryOverallocationCreateInfoAMD* toTransform);
+
+#endif
 #ifdef VK_EXT_vertex_attribute_divisor
 void transform_tohost_VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT(
     ResourceTracker* resourceTracker,
@@ -3031,9 +4446,119 @@
     ResourceTracker* resourceTracker,
     VkPipelineVertexInputDivisorStateCreateInfoEXT* toTransform);
 
+void transform_tohost_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_GGP_frame_token
+void transform_tohost_VkPresentFrameTokenGGP(
+    ResourceTracker* resourceTracker,
+    VkPresentFrameTokenGGP* toTransform);
+
+void transform_fromhost_VkPresentFrameTokenGGP(
+    ResourceTracker* resourceTracker,
+    VkPresentFrameTokenGGP* toTransform);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_feedback
+void transform_tohost_VkPipelineCreationFeedbackEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackEXT* toTransform);
+
+void transform_fromhost_VkPipelineCreationFeedbackEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackEXT* toTransform);
+
+void transform_tohost_VkPipelineCreationFeedbackCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineCreationFeedbackCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineCreationFeedbackCreateInfoEXT* toTransform);
+
 #endif
 #ifdef VK_NV_shader_subgroup_partitioned
 #endif
+#ifdef VK_NV_compute_shader_derivatives
+void transform_tohost_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceComputeShaderDerivativesFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceComputeShaderDerivativesFeaturesNV* toTransform);
+
+#endif
+#ifdef VK_NV_mesh_shader
+void transform_tohost_VkPhysicalDeviceMeshShaderFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMeshShaderFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderFeaturesNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceMeshShaderPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderPropertiesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMeshShaderPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMeshShaderPropertiesNV* toTransform);
+
+void transform_tohost_VkDrawMeshTasksIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkDrawMeshTasksIndirectCommandNV* toTransform);
+
+void transform_fromhost_VkDrawMeshTasksIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkDrawMeshTasksIndirectCommandNV* toTransform);
+
+#endif
+#ifdef VK_NV_fragment_shader_barycentric
+void transform_tohost_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV* toTransform);
+
+#endif
+#ifdef VK_NV_shader_image_footprint
+void transform_tohost_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderImageFootprintFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageFootprintFeaturesNV* toTransform);
+
+#endif
+#ifdef VK_NV_scissor_exclusive
+void transform_tohost_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineViewportExclusiveScissorStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineViewportExclusiveScissorStateCreateInfoNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceExclusiveScissorFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExclusiveScissorFeaturesNV* toTransform);
+
+#endif
 #ifdef VK_NV_device_diagnostic_checkpoints
 void transform_tohost_VkQueueFamilyCheckpointPropertiesNV(
     ResourceTracker* resourceTracker,
@@ -3052,7 +4577,133 @@
     VkCheckpointDataNV* toTransform);
 
 #endif
-#ifdef VK_GOOGLE_address_space
+#ifdef VK_INTEL_shader_integer_functions2
+void transform_tohost_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL* toTransform);
+
+#endif
+#ifdef VK_INTEL_performance_query
+void transform_tohost_VkPerformanceValueDataINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueDataINTEL* toTransform);
+
+void transform_fromhost_VkPerformanceValueDataINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueDataINTEL* toTransform);
+
+void transform_tohost_VkPerformanceValueINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueINTEL* toTransform);
+
+void transform_fromhost_VkPerformanceValueINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceValueINTEL* toTransform);
+
+void transform_tohost_VkInitializePerformanceApiInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkInitializePerformanceApiInfoINTEL* toTransform);
+
+void transform_fromhost_VkInitializePerformanceApiInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkInitializePerformanceApiInfoINTEL* toTransform);
+
+void transform_tohost_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* toTransform);
+
+void transform_fromhost_VkQueryPoolPerformanceQueryCreateInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkQueryPoolPerformanceQueryCreateInfoINTEL* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkQueryPoolPerformanceQueryCreateInfoINTEL, transform_tohost_VkQueryPoolCreateInfoINTEL);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkQueryPoolPerformanceQueryCreateInfoINTEL, transform_fromhost_VkQueryPoolCreateInfoINTEL);
+
+void transform_tohost_VkPerformanceMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceMarkerInfoINTEL* toTransform);
+
+void transform_fromhost_VkPerformanceMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceMarkerInfoINTEL* toTransform);
+
+void transform_tohost_VkPerformanceStreamMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceStreamMarkerInfoINTEL* toTransform);
+
+void transform_fromhost_VkPerformanceStreamMarkerInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceStreamMarkerInfoINTEL* toTransform);
+
+void transform_tohost_VkPerformanceOverrideInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceOverrideInfoINTEL* toTransform);
+
+void transform_fromhost_VkPerformanceOverrideInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceOverrideInfoINTEL* toTransform);
+
+void transform_tohost_VkPerformanceConfigurationAcquireInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceConfigurationAcquireInfoINTEL* toTransform);
+
+void transform_fromhost_VkPerformanceConfigurationAcquireInfoINTEL(
+    ResourceTracker* resourceTracker,
+    VkPerformanceConfigurationAcquireInfoINTEL* toTransform);
+
+#endif
+#ifdef VK_EXT_pci_bus_info
+void transform_tohost_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePCIBusInfoPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePCIBusInfoPropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_AMD_display_native_hdr
+void transform_tohost_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    ResourceTracker* resourceTracker,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* toTransform);
+
+void transform_fromhost_VkDisplayNativeHdrSurfaceCapabilitiesAMD(
+    ResourceTracker* resourceTracker,
+    VkDisplayNativeHdrSurfaceCapabilitiesAMD* toTransform);
+
+void transform_tohost_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* toTransform);
+
+void transform_fromhost_VkSwapchainDisplayNativeHdrCreateInfoAMD(
+    ResourceTracker* resourceTracker,
+    VkSwapchainDisplayNativeHdrCreateInfoAMD* toTransform);
+
+#endif
+#ifdef VK_FUCHSIA_imagepipe_surface
+void transform_tohost_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* toTransform);
+
+void transform_fromhost_VkImagePipeSurfaceCreateInfoFUCHSIA(
+    ResourceTracker* resourceTracker,
+    VkImagePipeSurfaceCreateInfoFUCHSIA* toTransform);
+
+#endif
+#ifdef VK_EXT_metal_surface
+void transform_tohost_VkMetalSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMetalSurfaceCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkMetalSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMetalSurfaceCreateInfoEXT* toTransform);
+
 #endif
 #ifdef VK_GOOGLE_color_buffer
 void transform_tohost_VkImportColorBufferGOOGLE(
@@ -3080,23 +4731,919 @@
     VkImportPhysicalAddressGOOGLE* toTransform);
 
 #endif
-#ifdef VK_GOOGLE_sized_descriptor_update_template
+#ifdef VK_EXT_scalar_block_layout
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceScalarBlockLayoutFeatures, transform_tohost_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceScalarBlockLayoutFeatures, transform_fromhost_VkPhysicalDeviceScalarBlockLayoutFeaturesEXT);
+
 #endif
-#ifdef VK_GOOGLE_async_command_buffers
+#ifdef VK_GOOGLE_hlsl_functionality1
 #endif
-#ifdef VK_GOOGLE_create_resources_with_requirements
+#ifdef VK_GOOGLE_decorate_string
 #endif
-#ifdef VK_GOOGLE_address_space_info
+#ifdef VK_EXT_subgroup_size_control
+void transform_tohost_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSubgroupSizeControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceSubgroupSizeControlPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceSubgroupSizeControlPropertiesEXT* toTransform);
+
+void transform_tohost_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT* toTransform);
+
 #endif
-#ifdef VK_GOOGLE_free_memory_sync
+#ifdef VK_AMD_shader_core_properties2
+void transform_tohost_VkPhysicalDeviceShaderCoreProperties2AMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderCoreProperties2AMD* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderCoreProperties2AMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderCoreProperties2AMD* toTransform);
+
 #endif
-#ifdef VK_GOOGLE_async_queue_submit
+#ifdef VK_AMD_device_coherent_memory
+void transform_tohost_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceCoherentMemoryFeaturesAMD(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoherentMemoryFeaturesAMD* toTransform);
+
 #endif
-#ifdef VK_GOOGLE_linear_image_layout
+#ifdef VK_EXT_shader_image_atomic_int64
+void transform_tohost_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT* toTransform);
+
 #endif
-#ifdef VK_MVK_moltenvk
+#ifdef VK_EXT_memory_budget
+void transform_tohost_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMemoryBudgetPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryBudgetPropertiesEXT* toTransform);
+
 #endif
-#ifdef VK_GOOGLE_queue_submit_with_commands
+#ifdef VK_EXT_memory_priority
+void transform_tohost_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceMemoryPriorityFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceMemoryPriorityFeaturesEXT* toTransform);
+
+void transform_tohost_VkMemoryPriorityAllocateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMemoryPriorityAllocateInfoEXT* toTransform);
+
+void transform_fromhost_VkMemoryPriorityAllocateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkMemoryPriorityAllocateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_NV_dedicated_allocation_image_aliasing
+void transform_tohost_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV* toTransform);
+
+#endif
+#ifdef VK_EXT_buffer_device_address
+void transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceBufferDeviceAddressFeaturesEXT* toTransform);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, transform_tohost_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, transform_fromhost_VkPhysicalDeviceBufferAddressFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkBufferDeviceAddressInfo, transform_tohost_VkBufferDeviceAddressInfoEXT);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkBufferDeviceAddressInfo, transform_fromhost_VkBufferDeviceAddressInfoEXT);
+
+void transform_tohost_VkBufferDeviceAddressCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkBufferDeviceAddressCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkBufferDeviceAddressCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_tooling_info
+void transform_tohost_VkPhysicalDeviceToolPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceToolPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceToolPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceToolPropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_separate_stencil_usage
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkImageStencilUsageCreateInfo, transform_tohost_VkImageStencilUsageCreateInfoEXT);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkImageStencilUsageCreateInfo, transform_fromhost_VkImageStencilUsageCreateInfoEXT);
+
+#endif
+#ifdef VK_EXT_validation_features
+void transform_tohost_VkValidationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationFeaturesEXT* toTransform);
+
+void transform_fromhost_VkValidationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkValidationFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_NV_cooperative_matrix
+void transform_tohost_VkCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkCooperativeMatrixPropertiesNV* toTransform);
+
+void transform_fromhost_VkCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkCooperativeMatrixPropertiesNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceCooperativeMatrixFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixFeaturesNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceCooperativeMatrixPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCooperativeMatrixPropertiesNV* toTransform);
+
+#endif
+#ifdef VK_NV_coverage_reduction_mode
+void transform_tohost_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceCoverageReductionModeFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCoverageReductionModeFeaturesNV* toTransform);
+
+void transform_tohost_VkPipelineCoverageReductionStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageReductionStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineCoverageReductionStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineCoverageReductionStateCreateInfoNV* toTransform);
+
+void transform_tohost_VkFramebufferMixedSamplesCombinationNV(
+    ResourceTracker* resourceTracker,
+    VkFramebufferMixedSamplesCombinationNV* toTransform);
+
+void transform_fromhost_VkFramebufferMixedSamplesCombinationNV(
+    ResourceTracker* resourceTracker,
+    VkFramebufferMixedSamplesCombinationNV* toTransform);
+
+#endif
+#ifdef VK_EXT_fragment_shader_interlock
+void transform_tohost_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_ycbcr_image_arrays
+void transform_tohost_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceYcbcrImageArraysFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceYcbcrImageArraysFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_full_screen_exclusive
+void transform_tohost_VkSurfaceFullScreenExclusiveInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveInfoEXT* toTransform);
+
+void transform_fromhost_VkSurfaceFullScreenExclusiveInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveInfoEXT* toTransform);
+
+void transform_tohost_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* toTransform);
+
+void transform_fromhost_VkSurfaceCapabilitiesFullScreenExclusiveEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceCapabilitiesFullScreenExclusiveEXT* toTransform);
+
+void transform_tohost_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* toTransform);
+
+void transform_fromhost_VkSurfaceFullScreenExclusiveWin32InfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSurfaceFullScreenExclusiveWin32InfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_headless_surface
+void transform_tohost_VkHeadlessSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkHeadlessSurfaceCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkHeadlessSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkHeadlessSurfaceCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_line_rasterization
+void transform_tohost_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceLineRasterizationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceLineRasterizationPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceLineRasterizationPropertiesEXT* toTransform);
+
+void transform_tohost_VkPipelineRasterizationLineStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationLineStateCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPipelineRasterizationLineStateCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPipelineRasterizationLineStateCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_shader_atomic_float
+void transform_tohost_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderAtomicFloatFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderAtomicFloatFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_host_query_reset
+DEFINE_ALIAS_FUNCTION(transform_tohost_VkPhysicalDeviceHostQueryResetFeatures, transform_tohost_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+DEFINE_ALIAS_FUNCTION(transform_fromhost_VkPhysicalDeviceHostQueryResetFeatures, transform_fromhost_VkPhysicalDeviceHostQueryResetFeaturesEXT);
+
+#endif
+#ifdef VK_EXT_index_type_uint8
+void transform_tohost_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceIndexTypeUint8FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceIndexTypeUint8FeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_extended_dynamic_state
+void transform_tohost_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceExtendedDynamicStateFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceExtendedDynamicStateFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_shader_demote_to_helper_invocation
+void transform_tohost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_NV_device_generated_commands
+void transform_tohost_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV* toTransform);
+
+void transform_tohost_VkGraphicsShaderGroupCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsShaderGroupCreateInfoNV* toTransform);
+
+void transform_fromhost_VkGraphicsShaderGroupCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsShaderGroupCreateInfoNV* toTransform);
+
+void transform_tohost_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* toTransform);
+
+void transform_fromhost_VkGraphicsPipelineShaderGroupsCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGraphicsPipelineShaderGroupsCreateInfoNV* toTransform);
+
+void transform_tohost_VkBindShaderGroupIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindShaderGroupIndirectCommandNV* toTransform);
+
+void transform_fromhost_VkBindShaderGroupIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindShaderGroupIndirectCommandNV* toTransform);
+
+void transform_tohost_VkBindIndexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindIndexBufferIndirectCommandNV* toTransform);
+
+void transform_fromhost_VkBindIndexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindIndexBufferIndirectCommandNV* toTransform);
+
+void transform_tohost_VkBindVertexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindVertexBufferIndirectCommandNV* toTransform);
+
+void transform_fromhost_VkBindVertexBufferIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkBindVertexBufferIndirectCommandNV* toTransform);
+
+void transform_tohost_VkSetStateFlagsIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkSetStateFlagsIndirectCommandNV* toTransform);
+
+void transform_fromhost_VkSetStateFlagsIndirectCommandNV(
+    ResourceTracker* resourceTracker,
+    VkSetStateFlagsIndirectCommandNV* toTransform);
+
+void transform_tohost_VkIndirectCommandsStreamNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsStreamNV* toTransform);
+
+void transform_fromhost_VkIndirectCommandsStreamNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsStreamNV* toTransform);
+
+void transform_tohost_VkIndirectCommandsLayoutTokenNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutTokenNV* toTransform);
+
+void transform_fromhost_VkIndirectCommandsLayoutTokenNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutTokenNV* toTransform);
+
+void transform_tohost_VkIndirectCommandsLayoutCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutCreateInfoNV* toTransform);
+
+void transform_fromhost_VkIndirectCommandsLayoutCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkIndirectCommandsLayoutCreateInfoNV* toTransform);
+
+void transform_tohost_VkGeneratedCommandsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsInfoNV* toTransform);
+
+void transform_fromhost_VkGeneratedCommandsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsInfoNV* toTransform);
+
+void transform_tohost_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* toTransform);
+
+void transform_fromhost_VkGeneratedCommandsMemoryRequirementsInfoNV(
+    ResourceTracker* resourceTracker,
+    VkGeneratedCommandsMemoryRequirementsInfoNV* toTransform);
+
+#endif
+#ifdef VK_EXT_texel_buffer_alignment
+void transform_tohost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_QCOM_render_pass_transform
+void transform_tohost_VkRenderPassTransformBeginInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkRenderPassTransformBeginInfoQCOM* toTransform);
+
+void transform_fromhost_VkRenderPassTransformBeginInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkRenderPassTransformBeginInfoQCOM* toTransform);
+
+void transform_tohost_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toTransform);
+
+void transform_fromhost_VkCommandBufferInheritanceRenderPassTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCommandBufferInheritanceRenderPassTransformInfoQCOM* toTransform);
+
+#endif
+#ifdef VK_EXT_device_memory_report
+void transform_tohost_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDeviceMemoryReportFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDeviceMemoryReportFeaturesEXT* toTransform);
+
+void transform_tohost_VkDeviceMemoryReportCallbackDataEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryReportCallbackDataEXT* toTransform);
+
+void transform_fromhost_VkDeviceMemoryReportCallbackDataEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceMemoryReportCallbackDataEXT* toTransform);
+
+void transform_tohost_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkDeviceDeviceMemoryReportCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDeviceDeviceMemoryReportCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_robustness2
+void transform_tohost_VkPhysicalDeviceRobustness2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2FeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRobustness2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2FeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceRobustness2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2PropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRobustness2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRobustness2PropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_custom_border_color
+void transform_tohost_VkSamplerCustomBorderColorCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerCustomBorderColorCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkSamplerCustomBorderColorCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkSamplerCustomBorderColorCreateInfoEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceCustomBorderColorPropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorPropertiesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceCustomBorderColorFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceCustomBorderColorFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_GOOGLE_user_type
+#endif
+#ifdef VK_EXT_private_data
+void transform_tohost_VkPhysicalDevicePrivateDataFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrivateDataFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePrivateDataFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePrivateDataFeaturesEXT* toTransform);
+
+void transform_tohost_VkDevicePrivateDataCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDevicePrivateDataCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkDevicePrivateDataCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDevicePrivateDataCreateInfoEXT* toTransform);
+
+void transform_tohost_VkPrivateDataSlotCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPrivateDataSlotCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkPrivateDataSlotCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkPrivateDataSlotCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_pipeline_creation_cache_control
+void transform_tohost_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_NV_device_diagnostics_config
+void transform_tohost_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceDiagnosticsConfigFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceDiagnosticsConfigFeaturesNV* toTransform);
+
+void transform_tohost_VkDeviceDiagnosticsConfigCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDeviceDiagnosticsConfigCreateInfoNV* toTransform);
+
+void transform_fromhost_VkDeviceDiagnosticsConfigCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkDeviceDiagnosticsConfigCreateInfoNV* toTransform);
+
+#endif
+#ifdef VK_QCOM_render_pass_store_ops
+#endif
+#ifdef VK_NV_fragment_shading_rate_enums
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV* toTransform);
+
+void transform_tohost_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toTransform);
+
+void transform_fromhost_VkPipelineFragmentShadingRateEnumStateCreateInfoNV(
+    ResourceTracker* resourceTracker,
+    VkPipelineFragmentShadingRateEnumStateCreateInfoNV* toTransform);
+
+#endif
+#ifdef VK_EXT_fragment_density_map2
+void transform_tohost_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentDensityMap2FeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2FeaturesEXT* toTransform);
+
+void transform_tohost_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceFragmentDensityMap2PropertiesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceFragmentDensityMap2PropertiesEXT* toTransform);
+
+#endif
+#ifdef VK_QCOM_rotated_copy_commands
+void transform_tohost_VkCopyCommandTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCopyCommandTransformInfoQCOM* toTransform);
+
+void transform_fromhost_VkCopyCommandTransformInfoQCOM(
+    ResourceTracker* resourceTracker,
+    VkCopyCommandTransformInfoQCOM* toTransform);
+
+#endif
+#ifdef VK_EXT_image_robustness
+void transform_tohost_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceImageRobustnessFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceImageRobustnessFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_4444_formats
+void transform_tohost_VkPhysicalDevice4444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice4444FormatsFeaturesEXT* toTransform);
+
+void transform_fromhost_VkPhysicalDevice4444FormatsFeaturesEXT(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDevice4444FormatsFeaturesEXT* toTransform);
+
+#endif
+#ifdef VK_EXT_directfb_surface
+void transform_tohost_VkDirectFBSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDirectFBSurfaceCreateInfoEXT* toTransform);
+
+void transform_fromhost_VkDirectFBSurfaceCreateInfoEXT(
+    ResourceTracker* resourceTracker,
+    VkDirectFBSurfaceCreateInfoEXT* toTransform);
+
+#endif
+#ifdef VK_GOOGLE_gfxstream
+#endif
+#ifdef VK_KHR_acceleration_structure
+void transform_tohost_VkDeviceOrHostAddressKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressKHR* toTransform);
+
+void transform_fromhost_VkDeviceOrHostAddressKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressKHR* toTransform);
+
+void transform_tohost_VkDeviceOrHostAddressConstKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressConstKHR* toTransform);
+
+void transform_fromhost_VkDeviceOrHostAddressConstKHR(
+    ResourceTracker* resourceTracker,
+    VkDeviceOrHostAddressConstKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureBuildRangeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildRangeInfoKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureBuildRangeInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildRangeInfoKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureGeometryTrianglesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryTrianglesDataKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureGeometryTrianglesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryTrianglesDataKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureGeometryAabbsDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryAabbsDataKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureGeometryAabbsDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryAabbsDataKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureGeometryInstancesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryInstancesDataKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureGeometryInstancesDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryInstancesDataKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureGeometryDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryDataKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureGeometryDataKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryDataKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureGeometryKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureGeometryKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureGeometryKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureBuildGeometryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildGeometryInfoKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureBuildGeometryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildGeometryInfoKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureCreateInfoKHR* toTransform);
+
+void transform_tohost_VkWriteDescriptorSetAccelerationStructureKHR(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetAccelerationStructureKHR* toTransform);
+
+void transform_fromhost_VkWriteDescriptorSetAccelerationStructureKHR(
+    ResourceTracker* resourceTracker,
+    VkWriteDescriptorSetAccelerationStructureKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceAccelerationStructureFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructureFeaturesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceAccelerationStructurePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceAccelerationStructurePropertiesKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureDeviceAddressInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureDeviceAddressInfoKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureDeviceAddressInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureDeviceAddressInfoKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureVersionInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureVersionInfoKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureVersionInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureVersionInfoKHR* toTransform);
+
+void transform_tohost_VkCopyAccelerationStructureToMemoryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureToMemoryInfoKHR* toTransform);
+
+void transform_fromhost_VkCopyAccelerationStructureToMemoryInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureToMemoryInfoKHR* toTransform);
+
+void transform_tohost_VkCopyMemoryToAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyMemoryToAccelerationStructureInfoKHR* toTransform);
+
+void transform_fromhost_VkCopyMemoryToAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyMemoryToAccelerationStructureInfoKHR* toTransform);
+
+void transform_tohost_VkCopyAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureInfoKHR* toTransform);
+
+void transform_fromhost_VkCopyAccelerationStructureInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkCopyAccelerationStructureInfoKHR* toTransform);
+
+void transform_tohost_VkAccelerationStructureBuildSizesInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildSizesInfoKHR* toTransform);
+
+void transform_fromhost_VkAccelerationStructureBuildSizesInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkAccelerationStructureBuildSizesInfoKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_ray_tracing_pipeline
+void transform_tohost_VkRayTracingShaderGroupCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingShaderGroupCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkRayTracingShaderGroupCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingShaderGroupCreateInfoKHR* toTransform);
+
+void transform_tohost_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkRayTracingPipelineInterfaceCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineInterfaceCreateInfoKHR* toTransform);
+
+void transform_tohost_VkRayTracingPipelineCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineCreateInfoKHR* toTransform);
+
+void transform_fromhost_VkRayTracingPipelineCreateInfoKHR(
+    ResourceTracker* resourceTracker,
+    VkRayTracingPipelineCreateInfoKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRayTracingPipelineFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelineFeaturesKHR* toTransform);
+
+void transform_tohost_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRayTracingPipelinePropertiesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayTracingPipelinePropertiesKHR* toTransform);
+
+void transform_tohost_VkStridedDeviceAddressRegionKHR(
+    ResourceTracker* resourceTracker,
+    VkStridedDeviceAddressRegionKHR* toTransform);
+
+void transform_fromhost_VkStridedDeviceAddressRegionKHR(
+    ResourceTracker* resourceTracker,
+    VkStridedDeviceAddressRegionKHR* toTransform);
+
+void transform_tohost_VkTraceRaysIndirectCommandKHR(
+    ResourceTracker* resourceTracker,
+    VkTraceRaysIndirectCommandKHR* toTransform);
+
+void transform_fromhost_VkTraceRaysIndirectCommandKHR(
+    ResourceTracker* resourceTracker,
+    VkTraceRaysIndirectCommandKHR* toTransform);
+
+#endif
+#ifdef VK_KHR_ray_query
+void transform_tohost_VkPhysicalDeviceRayQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayQueryFeaturesKHR* toTransform);
+
+void transform_fromhost_VkPhysicalDeviceRayQueryFeaturesKHR(
+    ResourceTracker* resourceTracker,
+    VkPhysicalDeviceRayQueryFeaturesKHR* toTransform);
+
 #endif
 
 } // namespace goldfish_vk
diff --git a/tests/gles_android_wrapper/Android.mk b/tests/gles_android_wrapper/Android.mk
index 13e0cfc..78bab3c 100644
--- a/tests/gles_android_wrapper/Android.mk
+++ b/tests/gles_android_wrapper/Android.mk
@@ -53,6 +53,9 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := egl.cfg
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE
 LOCAL_SRC_FILES := $(LOCAL_MODULE)
 
 LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/egl
@@ -66,6 +69,9 @@
 include $(CLEAR_VARS)
 
 LOCAL_MODULE := gles_emul.cfg
+LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
+LOCAL_LICENSE_CONDITIONS := notice
+LOCAL_NOTICE_FILE := $(LOCAL_PATH)/../../LICENSE
 LOCAL_SRC_FILES := $(LOCAL_MODULE)
 
 LOCAL_MODULE_PATH := $(TARGET_OUT)/etc